static int _CreateInputNetworkConnectStatusEvent(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 0)
            {
                InputNetworkConnectStatusEvent obj = new InputNetworkConnectStatusEvent();
                ToLua.PushObject(L, obj);
                return(1);
            }
            else if (count == 1 && TypeChecker.CheckTypes(L, 1, typeof(NetworkState)))
            {
                NetworkState arg0 = (NetworkState)ToLua.CheckObject(L, 1, typeof(NetworkState));
                InputNetworkConnectStatusEvent obj = new InputNetworkConnectStatusEvent(arg0);
                ToLua.PushObject(L, obj);
                return(1);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to ctor method: InputNetworkConnectStatusEvent.New"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
 protected virtual void ReceviceConnectStatus(InputNetworkConnectStatusEvent e)
 {
     if (e.m_status == NetworkState.Connected)
     {
         ResetSendTimer();
         ResetReceviceTimer();
     }
 }
Beispiel #3
0
 void ReceviceSocketStatus(InputNetworkConnectStatusEvent e)
 {
     isConnect = false;
     if (e.m_status == NetworkState.Connected)
     {
         ApplicationStatusManager.GetStatus <LoginState>().Login(SystemInfo.deviceUniqueIdentifier, UserData.NickName);
     }
 }
Beispiel #4
0
    const int c_connectMsgPool = 2; //网络连接事件池大小

    public static void DispatchStatusEvent(NetworkState status)
    {
        //只有允许输入时才派发事件
        if (IsActive)
        {
            InitPool();
            InputNetworkConnectStatusEvent e = GetConnectMsgEvent(status);
            InputManager.Dispatch <InputNetworkConnectStatusEvent>(e);
        }
    }
Beispiel #5
0
    static InputNetworkConnectStatusEvent GetConnectMsgEvent(NetworkState status)
    {
        InputNetworkConnectStatusEvent msg = m_connectMsgPool[m_connectIndex];

        msg.Reset();
        msg.m_status = status;

        m_connectIndex++;

        if (m_connectIndex >= m_connectMsgPool.Length)
        {
            m_connectIndex = 0;
        }

        return(msg);
    }
    static int set_m_status(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            InputNetworkConnectStatusEvent obj = (InputNetworkConnectStatusEvent)o;
            NetworkState arg0 = (NetworkState)ToLua.CheckObject(L, 2, typeof(NetworkState));
            obj.m_status = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index m_status on a nil value" : e.Message));
        }
    }
    static int get_m_status(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            InputNetworkConnectStatusEvent obj = (InputNetworkConnectStatusEvent)o;
            NetworkState ret = obj.m_status;
            ToLua.Push(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index m_status on a nil value" : e.Message));
        }
    }
Beispiel #8
0
    static void InitPool()
    {
        if (!isInit)
        {
            isInit           = true;
            m_connectMsgPool = new InputNetworkConnectStatusEvent[c_connectMsgPool];
            for (int i = 0; i < c_connectMsgPool; i++)
            {
                m_connectMsgPool[i] = new InputNetworkConnectStatusEvent();
            }

            m_msgPool = new InputNetworkMessageEvent[c_msgPoolSize];
            for (int i = 0; i < c_msgPoolSize; i++)
            {
                m_msgPool[i] = new InputNetworkMessageEvent();
            }
        }
    }
    private static void OnNetworkConenctStatus(InputNetworkConnectStatusEvent msg)
    {
        Debug.Log("OnNetworkConenctStatus :" + msg.m_status);
        if (msg.m_status == NetworkState.FaildToConnect || msg.m_status == NetworkState.ConnectBreak)
        {
            if (!isBreakConenct)
            {
                isBreakConenct = true;

                Debug.LogWarning("OnNetworkConenctStatus :" + msg.m_status + " " + isBreakConenct);
                startReconenct = true;

                if (Open && StartReconnect != null)
                {
                    StartReconnect();
                }
            }
            else
            {
                Debug.LogWarning("OnNetworkConenctStatus :" + msg.m_status + " " + isBreakConenct);
            }

            //断线
        }
        else if (msg.m_status == NetworkState.Connected)
        {
            isBreakConenct = false;


            startReconenct = false;
            if (Open && EndReconnect != null)
            {
                EndReconnect();
            }
            //连接成功
        }
    }
    static void InitPool()
    {
        if (!isInit)
        {
            isInit = true;
            m_connectMsgPool = new InputNetworkConnectStatusEvent[c_connectMsgPool];
            for (int i = 0; i < c_connectMsgPool; i++)
            {
                m_connectMsgPool[i] = new InputNetworkConnectStatusEvent();
            }

            m_msgPool = new InputNetworkMessageEvent[c_msgPoolSize];
            for (int i = 0; i < c_msgPoolSize; i++)
            {
                m_msgPool[i] = new InputNetworkMessageEvent();
            }
        }
    }