Esempio n. 1
0
        public void ShortClose(ConnectShort conn)
        {
            int index = _lstShortConn.IndexOf(conn);

            if (index >= 0)
            {
                _lstShortConn[index].Close();
                _lstShortConn.RemoveAt(index);
            }
        }
Esempio n. 2
0
        private IEnumerator ShortTimeout(ConnectShort conn)
        {
            yield return(new WaitForSeconds(shortTimeout));

            int index = _lstShortConn.IndexOf(conn);

            if (index >= 0)
            {
                conn.PostError(0);
            }
        }
Esempio n. 3
0
        public void ShortSend(ByteBuffer data, bool flag = false, bool bEncrypt = true)
        {
            if (flag && null != ShortSendExcuteFun)
            {
                ShortSendExcuteFun();
            }

            ConnectShort conn = new ConnectShort(data, flag, bEncrypt);

            _lstShortConn.Add(conn);
            conn.ConnectToServer(_sShortIp, _sShortPort);

            StartCoroutine(ShortTimeout(conn));
        }
Esempio 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;
            }
        }
Esempio n. 5
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;
            }
        }