Ejemplo n.º 1
0
        public static void MessageArrived(ConnectBase conn, ByteBuffer data)
        {
            int      bigId   = data.readByte();
            IService service = GetService(bigId);

            service.ProcessMessage(conn, data);
        }
Ejemplo n.º 2
0
 public static void PostMessageLong(ConnectBase conn, ByteBuffer buff)
 {
     lock (m_Locker)
     {
         ServerData data = new ServerData(conn, buff, false);
         m_lstData.Enqueue(data);
     }
 }
Ejemplo n.º 3
0
 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);
     }
 }
Ejemplo n.º 4
0
        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;
            }
        }
Ejemplo n.º 5
0
 public void ShortSetUrl(string sIp, int iPort)
 {
     IPAddress[] ips = Dns.GetHostAddresses(sIp);
     _sShortIp   = ConnectBase.SetIpType(ips[0].ToString());
     _sShortPort = iPort;
 }
Ejemplo n.º 6
0
        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;
            }
        }
Ejemplo n.º 7
0
        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;
            }
            }
        }
Ejemplo n.º 8
0
 public ServerData(ConnectBase c, ByteBuffer b, bool bs)
 {
     conn   = c;
     buff   = b;
     bShort = bs;
 }
Ejemplo n.º 9
0
 public void LongSetUrl(string sIp, string sPort, int type)
 {
     IPAddress[] ips = Dns.GetHostAddresses(sIp);
     _arrIpInfo[type] = new string[] { ConnectBase.SetIpType(ips[0].ToString()), sPort };
 }