예제 #1
0
 protected void HandleReader(QNetworkReader reader, int receivedSize, int channelId)
 {
     while (reader.Position < receivedSize)
     {
         var num     = reader.ReadUInt16();
         var num2    = reader.ReadInt16();
         var array   = reader.ReadBytes(num);
         var reader2 = new QNetworkReader(array);
         QNetworkMessageDelegate networkMessageDelegate = null;
         if (m_MessageHandlersDict.ContainsKey(num2))
         {
             networkMessageDelegate = m_MessageHandlersDict[num2];
         }
         if (networkMessageDelegate == null)
         {
             QLog.Error($"Unknown message ID {num2} connId:{connectionId}");
             break;
         }
         m_NetMsg.MsgType    = num2;
         m_NetMsg.Reader     = reader2;
         m_NetMsg.Connection = this;
         m_NetMsg.ChannelId  = channelId;
         networkMessageDelegate(m_NetMsg);
         lastMessageTime = Time.time;
     }
 }
 internal void RegisterHandlerSafe(short msgType, QNetworkMessageDelegate handler)
 {
     if (handler == null)
     {
         QLog.Error($"RegisterHandlerSafe id:{msgType} handler is null");
     }
     else
     {
         QLog.Debug($"RegisterHandlerSafe id:{msgType} handler:{handler.GetMethodName()}");
         if (!_msgHandlers.ContainsKey(msgType))
         {
             _msgHandlers.Add(msgType, handler);
         }
     }
 }
 public void RegisterHandler(short msgType, QNetworkMessageDelegate handler)
 {
     if (handler == null)
     {
         QLog.Error($"RegisterHandler id:{msgType} handler is null");
     }
     else if (msgType <= 31)
     {
         QLog.Error($"RegisterHandler: Cannot replace system message handler {msgType}");
     }
     else
     {
         if (_msgHandlers.ContainsKey(msgType))
         {
             QLog.Log($"RegisterHandler replacing {msgType}");
             _msgHandlers.Remove(msgType);
         }
         QLog.Debug($"RegisterHandler id:{msgType} handler:{handler.GetMethodName()}");
         _msgHandlers.Add(msgType, handler);
     }
 }
예제 #4
0
 public void RegisterHandler(short msgType, QNetworkMessageDelegate handler) => m_MessageHandlers.RegisterHandler(msgType, handler);