示例#1
0
        private void DealHandshake(Proto_Handshake_rsp msg)
        {
            if (msg.heartbeat > 0)
            {
                heartbeatTimer          = new Timer();
                heartbeatTimer.Elapsed += SendHeartbeat;
                heartbeatTimer.Interval = msg.heartbeat * 1000;
                heartbeatTimer.Enabled  = true;

                heartbeatTimeoutTimer           = new Timer();
                heartbeatTimeoutTimer.Elapsed  += HeartbeatTimeout;
                heartbeatTimeoutTimer.AutoReset = false;
                heartbeatTimeoutTimer.Interval  = 4 * 1000;
            }
            md5 = msg.md5;
            if (msg.route != null)
            {
                route = new List <string>();
                for (int i = 0; i < msg.route.Length; i++)
                {
                    route.Add(msg.route[i]);
                }
            }

            SocketMsg openMsg = new SocketMsg();

            openMsg.msgId = state_open;
            pushMsg(openMsg);
        }
示例#2
0
 private void HandleMsg()
 {
     if (msgType == 1)   // 自定义消息
     {
         int index = (someBytes[0] << 8) | someBytes[1];
         if (index < route.Count)
         {
             SocketMsg msg = new SocketMsg();
             msg.msgId = route[index];
             msg.msg   = msgBytes;
             pushMsg(msg);
         }
     }
     else if (msgType == 2)   // 握手回调
     {
         string tmpStr = Encoding.UTF8.GetString(msgBytes);
         Proto_Handshake_rsp handshakeMsg = JsonUtility.FromJson <Proto_Handshake_rsp>(tmpStr);
         DealHandshake(handshakeMsg);
     }
     else if (msgType == 3)  // 心跳回调
     {
         if (heartbeatTimeoutTimer != null)
         {
             heartbeatTimeoutTimer.Stop();
         }
     }
 }