public static void MessageArrived(ConnectBase conn, ByteBuffer data) { int bigId = data.readByte(); IService service = GetService(bigId); service.ProcessMessage(conn, data); }
public static void PostMessageLong(ConnectBase conn, ByteBuffer buff) { lock (m_Locker) { ServerData data = new ServerData(conn, buff, false); m_lstData.Enqueue(data); } }
public static void PostMessageShort(ConnectBase conn, ByteBuffer buff) { lock (m_Locker) { SocketHandler.GetInst().ShortClose((ConnectShort)conn); ServerData data = new ServerData(conn, buff, true); m_lstData.Enqueue(data); } }
public const int SCONNECT_EXCEPTION = 4; //短连接错误(登陆) public override void ProcessMessage(ConnectBase conn, ByteBuffer data) { int errCode; int moduleId = data.readByte(); switch (moduleId) { case SCONNECT_EXCEPTION: errCode = data.readInt(); MsgBoxPanel.MsgCallback Reconnect = () => { ConnectShort co = (ConnectShort)conn; SocketHandler.GetInst().ShortSend(co.m_Data, co.m_bFlag, co.m_bNeedEncrypt); SocketHandler.ShortSendBackFun(); }; MsgBoxPanel.ShowMsgBox(errCode.ToString(), (string)ApplicationConst.dictStaticText["22"], 1, Reconnect); break; default: break; } }
public void ShortSetUrl(string sIp, int iPort) { IPAddress[] ips = Dns.GetHostAddresses(sIp); _sShortIp = ConnectBase.SetIpType(ips[0].ToString()); _sShortPort = iPort; }
private const int LONG_MESSAGE_END = 5; //长链接消息结束 public override void ProcessMessage(ConnectBase conn, ByteBuffer data) { int type, errCode; int moduleId = data.readByte(); switch (moduleId) { case LONG_CONNECTED: type = data.readByte(); if (type == 0) { LoginPanel.GetInst().OnPlatformLogin(); } else { CommonCommand.ExecuteLongBattle(Client2ServerList.GetInst().C2S_BATTLE_LOGIN, new ArrayList() { PlayerData.PlayerId }); } //ConnectLong.GetInst().ConnectedFunc(); break; case LCONNECT_EXCEPTION: type = data.readByte(); errCode = data.readInt(); if (10049 == errCode || //Cannot assign requested address 10051 == errCode || //Network is unreachable 10054 == errCode || //Connection reset by peer 10057 == errCode || //Socket is not connected 10058 == errCode || //Cannot send after socket shutdown 10060 == errCode || //Connection timed out 10061 == errCode || //Connection refused 0 == errCode) //Directly send error { if (type == 0) { ApplicationEntry.ToLoginScene(); } } else if (10053 != errCode) { Debug.LogError(string.Format("LCONNECT_EXCEPTION-Code:{0}", errCode)); } break; case SCONNECT_EXCEPTION: errCode = data.readInt(); MsgBoxPanel.MsgCallback Reconnect = () => { ConnectShort co = (ConnectShort)conn; SocketHandler.GetInst().ShortSend(co.m_Data, co.m_bFlag, co.m_bNeedEncrypt); SocketHandler.ShortSendBackFun(); }; MsgBoxPanel.ShowMsgBox(string.Empty, (string)ApplicationConst.dictStaticText["22"], 1, Reconnect); break; case LONG_MESSAGE_END: Connecting.GetInst().ForceHide(); break; default: break; } }
public override void ProcessMessage(ConnectBase conn, ByteBuffer data) { int moduleId = data.readByte(); switch (moduleId) { case LOAD: { int type = data.readByte(); int roomId = data.readInt(); int seed = data.readInt(); int frequency = data.readByte(); int stairs = data.readInt(); int size = data.readByte(); List <BattlePlayerData> others = new List <BattlePlayerData>(); for (int i = 0; i < size; ++i) { BattlePlayerData player = new BattlePlayerData(); player.PlayerId = data.readInt(); player.IsRobot = data.readBoolean(); player.PlayerName = data.readUTF(); player.SceneId = data.readByte(); player.HeroId = data.readByte(); player.HP = 5; others.Add(player); } if (type == 1) { BattleManager.GetInst().LoadDouble(roomId, seed, frequency, stairs, others); } else if (type == 2) { BattleManager.GetInst().LoadFive(roomId, seed, frequency, stairs, others); } break; } case START: { BattleManager.GetInst().BattleStart(); SocketHandler.GetInst().UdpStart(); break; } case SYNC_HP: { int playerId = data.readInt(); int hp = data.readByte(); BattleManager.GetInst().SyncHp(playerId, hp); break; } case GET_ITEM: { int playerId = data.readInt(); int item = data.readByte(); BattleManager.GetInst().EnqueueSkill(playerId, item); break; } case RELEASE_SKILL: { int fromId = data.readInt(); int toId = data.readInt(); int type = data.readByte(); bool bMain = data.readBoolean(); BattleManager.GetInst().ReleaseSkill(fromId, toId, type); if (!bMain) { BattleManager.GetInst().DequeueSkill(fromId); } break; } case RESULT: { BattleManager.GetInst().IsBattleRun = false; int playerId = data.readInt(); BattleManager.GetInst().DisableHero(playerId); BattleResultPanel.GetInst().ShowPanel(playerId); break; } case HERO_FAILED: { int playerId = data.readInt(); BattleManager.GetInst().SetFailed(playerId); break; } } }
public ServerData(ConnectBase c, ByteBuffer b, bool bs) { conn = c; buff = b; bShort = bs; }
public void LongSetUrl(string sIp, string sPort, int type) { IPAddress[] ips = Dns.GetHostAddresses(sIp); _arrIpInfo[type] = new string[] { ConnectBase.SetIpType(ips[0].ToString()), sPort }; }