/// <summary> /// Tcp客户端连接断开,通知业务层 /// </summary> /// <param name="sender"></param> /// <param name="clientPoint"></param> public void OnTcpClientClosed(object sender, EndPoint clientPoint) { var token = ClientConnectManager.GetToken(clientPoint.ToString()); PacketHead head = new PacketHead(ConnectType.Tcp, PacketMsgType.Closed); head.GameId = token.GameId; head.ServerId = token.ServerId; head.Uid = token.Uid; var session = GameSessionManager.GetSession(head.GameId, head.ServerId); if (session == null) { return; } head.Address = session.GameAddress; head.EnableGzip = false; PacketMessage packet = new PacketMessage(); packet.Head = head; packet.Content = new byte[0]; if (CheckConnected(head.Address)) { OnSendToGame(head.Address, packet.ToByte()); } }
protected PacketMessage ParsePacketMessage(string clientAddress, string paramString, ConnectType connectType) { ParamGeter paramGeter = new ParamGeter(paramString); PacketHead head = new PacketHead(connectType, PacketMsgType.Request); head.Address = clientAddress; head.MsgId = paramGeter.GetInt("msgid"); head.Uid = paramGeter.GetInt("uid"); head.ActionId = paramGeter.GetInt("actionId"); string[] sidArray = paramGeter.GetString("sid").Split('|'); if (sidArray.Length > 2) { head.GameId = sidArray[1].ToInt(); head.ServerId = sidArray[2].ToInt(); } else { head.GameId = paramGeter.GetInt("gametype"); head.ServerId = paramGeter.GetInt("serverid"); } head.EnableGzip = false; PacketMessage packet = new PacketMessage(); packet.Head = head; packet.Content = BufferUtils.GetBytes(paramString); return packet; }