public void SendProtobufCmd(int serviceType, int cmdType, ProtoBuf.IExtensible body = null) { var cmdPackage = CmdPackageProtocol.PackageProtobuf(serviceType, cmdType, body); if (cmdPackage == null) { return; } var tcpPackage = TcpProtocol.Pack(cmdPackage); if (tcpPackage == null) { return; } try { this.clientSocket.BeginSend( tcpPackage, 0, tcpPackage.Length, SocketFlags.None, OnAfterSend, this.clientSocket); } catch (Exception e) { OnConnectError(e); } }
public void UdpSendProtobufCmd(int serviceType, int cmdType, ProtoBuf.IExtensible body = null) { var cmdPackage = CmdPackageProtocol.PackageProtobuf(serviceType, cmdType, body); if (cmdPackage == null) { return; } try { this.udpSocket.BeginSendTo( cmdPackage, 0, cmdPackage.Length, SocketFlags.None, this.udpRemotePoint, OnUdpSend, this.udpSocket); } catch (Exception e) { OnError(e); } }
private void OnServerReturn(CmdPackageProtocol.CmdPackage pk) { switch ((ChatCmd)pk.cmdType) { case ChatCmd.eOnUserExit: var onExit = CmdPackageProtocol.ProtobufDeserialize <OnUserExit>(pk.body); this.AddStatus(onExit.ip + ":" + onExit.port + " 离开聊天室"); break; case ChatCmd.eOnUserLogin: var onlogin = CmdPackageProtocol.ProtobufDeserialize <OnUserExit>(pk.body); this.AddStatus(onlogin.ip + ":" + onlogin.port + "加入聊天室"); break; case ChatCmd.eOnSendMsg: var onSend = CmdPackageProtocol.ProtobufDeserialize <OnSendMsg>(pk.body); this.AddTalkInfo(onSend.ip, onSend.port, onSend.content); break; case ChatCmd.eExitRes: var exitRes = CmdPackageProtocol.ProtobufDeserialize <ExitRes>(pk.body); if (1 == exitRes.status) { this.AddStatus("顺利离开聊天室"); } else { this.AddStatus("您早已不再聊天室"); } break; case ChatCmd.eLoginRes: var res = CmdPackageProtocol.ProtobufDeserialize <LoginRes>(pk.body); if (1 == res.status) { this.AddStatus("加入成功"); } else { this.AddStatus("加入失败"); } break; case ChatCmd.eSendMsgRes: var sendReq = CmdPackageProtocol.ProtobufDeserialize <SendMsgRes>(pk.body); if (1 == sendReq.status) { this.AddTalkSelf("127.0.0.1", 6080, this.talkContent); } else { this.AddStatus("发送失败"); } break; } }
private void OnAuthPackage(CmdPackageProtocol.CmdPackage pk) { switch ((ChatCmd)pk.cmdType) { case ChatCmd.eLoginRes: print("LoginRes.Status:" + CmdPackageProtocol.ProtobufDeserialize <LoginRes>(pk.body).status); break; } }
private void OnLogicFrame(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <LogicFrame>(pkg.body); if (null == res) { return; } CEventCenter.BroadMessage(Message.OnLogicFrame, res); }
private void OnUdpTest(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <UdpTest>(pkg.body); if (null == res) { return; } Debug.Log("recv udptest: " + res.content); }
private void OnPlayerEnterRoom(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <PlayerEnterRoom>(pkg.body); if (null == res) { return; } Debug.Log("other player come: " + res.unick); }
private void OnEnterRoom(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <EnterRoom>(pkg.body); if (null == res) { return; } Debug.Log("Enter room: [" + res.zoneid + " : " + res.roomid + "]"); }
private void OnExitRoomReturn(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <ExitRoomRes>(pkg.body); if (null == res) { return; } Debug.Log("exit room States: " + res.status); if (res.status == Responce.Ok) { NetInfo.SetZoneId(-1); CEventCenter.BroadMessage(Message.LeaveRoomSuccess); } }
private void OnPlayerEnterRoom(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <PlayerEnterRoom>(pkg.body); if (null == res) { return; } // Debug.Log("other player come: " + res.unick); //添加其他玩家信息 NetInfo.playerAuthInfos.Add(res); //广播消息 CEventCenter.BroadMessage(Message.PlayerEnterRoom, res); }
private void OnGameStart(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <GameStart>(pkg.body); if (null == res) { return; } NetInfo.playerMatchInfos = res.players; foreach (var VARIABLE in res.players) { Debug.Log($"PlayerInfo side[{VARIABLE.side}], seatid[{VARIABLE.seatid}], heroid[{VARIABLE.heroid}]"); } CEventCenter.BroadMessage(Message.GameStart); }
private void OnLoginLogicReturn(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <LoginLogicRes>(pkg.body); if (null == res) { return; } if (res.status != Responce.Ok) { Debug.Log("LoginLogicRes.Status:" + res.status); return; } CEventCenter.BroadMessage(Message.LoginLogicServerSuccess); }
private void OnEnterZoneReturn(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <EnterZoneRes>(pkg.body); if (null == res) { return; } if (res.status != Responce.Ok) { Debug.Log("EnterZoneRes.Status:" + res.status); return; } Debug.Log("Enter zone success"); }
private void OnEnterRoom(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <EnterRoom>(pkg.body); if (null == res) { return; } // Debug.Log("Enter room: [" + res.zoneid + " : " + res.roomid+"]"); NetInfo.SetRoom(res.roomid); NetInfo.SetZoneId(res.zoneid); NetInfo.SetSeat(res.seatid); NetInfo.SetSide(res.side); }
/// <summary> /// 账号升级返回 /// </summary> /// <param name="pk"></param> private void OnAccountUpgradeReturn(CmdPackageProtocol.CmdPackage pk) { var res = CmdPackageProtocol.ProtobufDeserialize <AccountUpgradeRes>(pk.body); if (null == res) { return; } Debug.Log("AccountUpgradeRes.Status: " + res.status); CEventCenter.BroadMessage(Message.UpgradeGuest, res.status); if (res.status == Responce.Ok) { NetInfo.SetIsGuest(false); } }
private void OnRecvLoginBonuesReturn(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <RecvLoginBonuesRes>(pkg.body); if (null == res) { return; } Debug.Log("RecvLoginBonues.Status:" + res.status); if (res.status != Responce.Ok) { return; } NetInfo.RecvLoginBonues(); CEventCenter.BroadMessage(Message.SyncUgameInfo); }
private void OnRecvCmd(byte[] pkgData, int rawDataStart, int rawDataLen) { CmdPackageProtocol.CmdPackage msg; //解析 if (!CmdPackageProtocol.UnpackProtobuf(pkgData, rawDataStart, rawDataLen, out msg)) { return; } if (null == msg) { return; } //将收到消息放到事件队列 lock (queueLock) { this.packageQueue.Enqueue(msg); } }
/// <summary> /// 账号登陆返回 /// </summary> /// <param name="pk"></param> private void OnUserLoginReturn(CmdPackageProtocol.CmdPackage pk) { var res = CmdPackageProtocol.ProtobufDeserialize <UserLoginRes>(pk.body); if (null == res) { return; } if (res.status != Responce.Ok) { Debug.LogWarning("UserLogin status: " + res.status); return; } //保存用户信息 NetInfo.SaveInfo(res.uinfo, false); //同步网络信息 CEventCenter.BroadMessage(Message.SyncAuthInfo); EnterGame(); }
private void OnPlayerExitRoom(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <PlayerExitRoom>(pkg.body); if (null == res) { return; } // Debug.Log("player leave " + res.seatid); for (int i = 0; i < NetInfo.playerAuthInfos.Count; i++) { if (NetInfo.playerAuthInfos[i].seatid == res.seatid) { CEventCenter.BroadMessage(Message.PlayerExitRoom, i); NetInfo.playerAuthInfos.RemoveAt(i); return; } } }
public void SendJsonCmd(int serviceType, int cmdType, string jsonStr) { var cmdPackage = CmdPackageProtocol.PackageJson(serviceType, cmdType, jsonStr); if (cmdPackage == null) { return; } var tcpPackage = TcpProtocol.Pack(cmdPackage); if (tcpPackage == null) { return; } this.clientSocket.BeginSend( tcpPackage, 0, tcpPackage.Length, SocketFlags.None, OnAfterSend, this.clientSocket); }
/// <summary> /// 修改信息服务器回调 /// </summary> /// <param name="pk"></param> private void OnEditProfileReturn(CmdPackageProtocol.CmdPackage pk) { var res = CmdPackageProtocol.ProtobufDeserialize <EditProfileRes>(pk.body); if (null == res) { Debug.LogError("解码失败"); return; } if (res.status != Responce.Ok) { Debug.LogError("Error Status: " + res.status); return; } Assert.IsNotNull(_editProfileReq); NetInfo.SaveEditProfile(_editProfileReq.unick, _editProfileReq.uface, _editProfileReq.usex); _editProfileReq = null; //通知更新 CEventCenter.BroadMessage(Message.SyncAuthInfo); }
private void OnGetMobaInfoReturn(CmdPackageProtocol.CmdPackage pkg) { var res = CmdPackageProtocol.ProtobufDeserialize <GetMobaInfoRes>(pkg.body); if (null == res) { return; } if (res.status != Responce.Ok) { Debug.LogWarning("GetMobaInfoRes.status: " + res.status); return; } Debug.Log("获取MobaGame信息"); NetInfo.SaveUgameInfo(res.uinfo); CEventCenter.BroadMessage(Message.SyncUgameInfo); CEventCenter.BroadMessage(Message.GetUgameInfoSuccess); }
private void OnAuthCmd(CmdPackageProtocol.CmdPackage pk) { // Debug.Log("recv cmd: "+pk.cmdType); switch ((LoginCmd)pk.cmdType) { case LoginCmd.eGuestLoginRes: OnGuestLoginReturn(pk); break; case LoginCmd.eEditProfileRes: OnEditProfileReturn(pk); break; case LoginCmd.eAccountUpgradeRes: OnAccountUpgradeReturn(pk); break; case LoginCmd.eUserLoginRes: OnUserLoginReturn(pk); break; case LoginCmd.eUserUnregisterRes: var res = CmdPackageProtocol.ProtobufDeserialize <UserUnregisterRes>(pk.body); if (res == null) { return; } if (res.status != Responce.Ok) { Debug.Log("Login status:" + res.status); break; } //注销成功 CEventCenter.BroadMessage(Message.Unregister); break; } }