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()); }
public void RegistReponseType(RpId rpId, ReponseDeserialization reponseDeserial) { if (mDeserializationFuncDic.ContainsKey(rpId)) { Logger.LogError("注册重复的消息序列化方法 " + rpId.ToString()); return; } mDeserializationFuncDic [rpId] = reponseDeserial; }
public void SendMessage(int peerConnectionId, RpId rpId, Dictionary <byte, object> dicParameters) { MyPeer peer = GetPeer(peerConnectionId); if (null != peer) { peer.SendCustomEvent(rpId, dicParameters); } }
public void RegistResponseListener(RpId responseId, System.Action <ResponseBase> action) { if (mResponseDic.ContainsKey(responseId)) { Logger.LogError("注册重复的消息处理"); return; } mResponseDic.Add(responseId, action); }
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); } } } }
/// <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()); } }
public ResponseMessageData(RpId responseId, ResponseBase responseData) { this.responseId = responseId; this.responseData = responseData; }
public void RemoveResponseListener(RpId responseId, System.Action <ResponseBase> action) { mResponseDic.Remove(responseId); }