示例#1
0
 /// <summary>
 /// 处理管理主机消息
 /// </summary>
 /// <param name="peer">消息来源主机</param>
 /// <param name="msg">消息</param>
 private static void ServerMessage(Peer peer, Msg msg)
 {
     switch (msg.type)
     {
         case 11:
             HostInfo info = msg.data as HostInfo;
             peer.info.id = info.id;
             ResHost curHost = HostManager.Singleton[info.id.ToString()];
             if (curHost == null)
                 return;
             curHost.rGroup(info.groups);
             curHost.searchService = info.SearchService;
             HoldingServer.Singleton.UpdateServices(HostGroup.getServices(HoldingServer.Self));
             Group.send(new Msg(13));
             break;
         case 12:
             peer.send(new Msg(13, HostGroup.getServices(msg.data as string[])));
             break;
         case 22:
             peer.send(new Msg(21, HoldingServer.Client.remote));
             break;
     }
 }
示例#2
0
 /// <summary>
 /// 本机以非管理主机身份开启分布式系统
 /// </summary>
 /// <param name="peer">管理主机</param>
 public void ClientStart(Peer peer)
 {
     client.remote = peer.info.ipep.Address;
     client.server = peer;
     peer.onFinalDeal += MessageDealer.FinalDeal;
     peer.onPeerQuit += MessageDealer.PeerQuit;
     peer.send(new Msg(11, new HostInfo()));
     lis.StartTcpAccept();
     state = 2;
 }
示例#3
0
 /// <summary>
 /// Tcp监听接受回调函数
 /// </summary>
 /// <param name="sender">接受的主机</param>
 void lis_onAccept(Peer sender)
 {
     if (state == 2)
     {
         sender.send(new Msg(21, client.remote));
         sender.close();
         return;
     }
     sender.onMessage += MessageDealer.Message;
     sender.onFinalDeal += MessageDealer.FinalDeal;
     sender.onPeerQuit += MessageDealer.PeerQuit;
 }