예제 #1
0
        public void SendCustomEvent(RpId rpId, Dictionary <byte, object> parameters)
        {
            EventData loginResult = new EventData((byte)rpId, parameters);

            //LBLogger.Info(LogTag, ConnectionId + " 向游戏前端发送数据 " + rpId.ToString());
            SendEvent(loginResult, new SendParameters());
        }
예제 #2
0
 public void RegistReponseType(RpId rpId, ReponseDeserialization reponseDeserial)
 {
     if (mDeserializationFuncDic.ContainsKey(rpId))
     {
         Logger.LogError("注册重复的消息序列化方法 " + rpId.ToString());
         return;
     }
     mDeserializationFuncDic [rpId] = reponseDeserial;
 }
예제 #3
0
        public void SendMessage(int peerConnectionId, RpId rpId, Dictionary <byte, object> dicParameters)
        {
            MyPeer peer = GetPeer(peerConnectionId);

            if (null != peer)
            {
                peer.SendCustomEvent(rpId, dicParameters);
            }
        }
예제 #4
0
 public void RegistResponseListener(RpId responseId, System.Action <ResponseBase> action)
 {
     if (mResponseDic.ContainsKey(responseId))
     {
         Logger.LogError("注册重复的消息处理");
         return;
     }
     mResponseDic.Add(responseId, action);
 }
예제 #5
0
 public void BroadcastEvent(RpId rpId, Dictionary <byte, object> dicParameters)
 {
     for (int i = 0; i < mPlayerInfoArray.Length; ++i)
     {
         if (mPlayerInfoArray[i].IsValidInfo)
         {
             LBPlayer curPlayer = LBPlayerManager.Instance.GetPlayerByPlayerId(mPlayerInfoArray[i].playerId);
             if (null != curPlayer)
             {
                 LBPeerManager.Instance.SendMessage(curPlayer.ConnectionId, rpId, dicParameters);
             }
         }
     }
 }
예제 #6
0
    /// <summary>
    /// 为网路底层准备的,逻辑层不能调用
    /// </summary>
    /// <param name="eventData">Event data.</param>
    public void OnEvent(EventData eventData)
    {
        RpId rpId = (RpId)eventData.Code;
        ReponseDeserialization deserializationFunc = null;

        if (mDeserializationFuncDic.TryGetValue(rpId, out deserializationFunc))
        {
            Logger.LogInfo("收到消息 " + rpId);
            ResponseBase responseMsg = deserializationFunc.Invoke(eventData.Parameters);
            if (null != responseMsg)
            {
                mReponseMessageList.Add(new ResponseMessageData(rpId, responseMsg));
            }
            else
            {
                Logger.LogError("消息解析失败 " + rpId);
            }
        }
        else
        {
            Logger.LogError("收到未注册的消息 " + rpId.ToString());
        }
    }
예제 #7
0
 public ResponseMessageData(RpId responseId, ResponseBase responseData)
 {
     this.responseId   = responseId;
     this.responseData = responseData;
 }
예제 #8
0
 public void RemoveResponseListener(RpId responseId, System.Action <ResponseBase> action)
 {
     mResponseDic.Remove(responseId);
 }