// 处理消息 public static void ProcessMessage(byte[] Buffer) { var nbs = new NetBitStream(); nbs.BeginRead(Buffer); EProtocolId id = (EProtocolId)nbs.ReadProtocolHeader(); //Debug($"处理协议-> {id} -> {(int)id} ......"); if (EventHandler != null) { EventHandler(Buffer); return; } if (!DictProtocolEvent.TryGetValue(id, out var protocolevent)) { Debug(string.Format("未注册协议-> {0} -> {1} ......", id, (int)id)); return; } try { //处理 protocolevent.ExecuteProtocolEvent(Buffer); } catch (Exception ex) { Error(string.Format("处理协议-> {0} -> {1}出错 ex:{2}", id, (int)id, ex.Message)); } }
private static void GateEventHandler(byte[] buffer) { var nbs = new NetBitStream(); nbs.BeginRead(buffer); EProtocolId id = (EProtocolId)nbs.ReadProtocolHeader(); var objMsg = ProtocolDump.Dump(id, buffer); if (objMsg == null) { loger.Error($"错误协议!{id}"); return; } if (ClientDispatcher.DictProtocolEvent.TryGetValue(id, out var protocolevent)) { protocolevent.ExecuteProtocolEvent(buffer); return; } if ((int)id < 100) { return; } long puid = ((ProtocolMsgBase)objMsg).Puid; if (puid == 0 && ((ProtocolMsgBase)objMsg).RspPuids.Count == 0) { loger.Error($"发送客户端消息错误,无发送目标!"); return; } List <long> rspId = new List <long>(); if (puid != 0) { rspId.Add(puid); } if (((ProtocolMsgBase)objMsg).RspPuids.Count > 0) { rspId.AddRange(((ProtocolMsgBase)objMsg).RspPuids); } SendMsg(objMsg, rspId); }
private static void GameEventHandler(byte[] buffer) { var nbs = new NetBitStream(); nbs.BeginRead(buffer); EProtocolId id = (EProtocolId)nbs.ReadProtocolHeader(); var objMsg = ProtocolDump.Dump(id, buffer); if (objMsg == null) { loger.Error($"错误协议!{id}"); return; } if (id == EProtocolId.S2C_SERVER_CONNECT) { var rsp = new C2S_Server_Connect() { SessionType = (short)BaseServerInfo.SessionType }; Dispatcher.SendByServerID(((S2C_Server_Connect)objMsg).ServerID, rsp); return; } if ((int)id < 100) { return; } if (!ClientDispatcher.DictProtocolEvent.TryGetValue(id, out var protocolevent)) { loger.Debug(string.Format("未注册协议-> {0} -> {1} ......", id, (int)id)); return; } try { //处理 protocolevent.ExecuteProtocolEvent(buffer); } catch (Exception ex) { loger.Error(string.Format("处理协议-> {0} -> {1}出错 ex:{2}", id, (int)id, ex.Message)); } }