public WebSocketConnectedEventArgs Fill(IWebSocketChannel channel, object userData)
        {
            Channel  = channel;
            UserData = userData;

            return(this);
        }
コード例 #2
0
        public WebSocketMissHeartBeatEventArgs Fill(IWebSocketChannel channel, int count)
        {
            Channel   = channel;
            MissCount = count;

            return(this);
        }
 public WebSocketReceivedPacketEventArgs Fill(IWebSocketChannel channel, int id, object packet)
 {
     Channel = channel;
     _id     = id;
     Packet  = packet;
     return(this);
 }
コード例 #4
0
        public WebSocketSentEventArgs Fill(IWebSocketChannel channel, int sentNum, object userData)
        {
            Channel   = channel;
            BytesSent = sentNum;
            UserData  = userData;

            return(this);
        }
コード例 #5
0
        public WebSocketErrorEventArgs Fill(IWebSocketChannel channel, NetworkErrorCode code, string msg)
        {
            Channel      = channel;
            ErrorCode    = code;
            ErrorMessage = msg;

            return(this);
        }
コード例 #6
0
        public void Shutdown()
        {
            GameEntry.Event.Unsubscribe(WebSocketConnectedEventArgs.EventId, OnNetworkConnected);
            GameEntry.Event.Unsubscribe(WebSocketClosedEventArgs.EventId, OnNetworkClosed);
            GameEntry.Event.Unsubscribe(WebSocketSentEventArgs.EventId, OnNetworkSendPacket);
            GameEntry.Event.Unsubscribe(WebSocketMissHeartBeatEventArgs.EventId, OnNetworkMissHeartBeat);
            GameEntry.Event.Unsubscribe(WebSocketErrorEventArgs.EventId, OnNetworkError);

            m_networkChannel = null;
        }
コード例 #7
0
        public void Initialize(IWebSocketChannel networkChannel)
        {
            m_networkChannel = networkChannel;

            Type handlerBaseType = typeof(ProtoHandlerBase);

            Assembly assembly = Assembly.GetExecutingAssembly();

            Type[] types = assembly.GetTypes();
            foreach (var type in types)
            {
                if (type.Namespace == "GameMain.Protos")
                {
                    if (type.IsEnum && type.Name == "PacketType")
                    {
                        var arr = Enum.GetValues(type);
                        foreach (var e in arr)
                        {
                            m_packetNamePrefixDict.Add((Protos.PacketType)e, e.ToString());
                        }
                    }

                    if (type.IsClass)
                    {
                        m_packetTypeDict.Add(type.Name, type);
                    }
                }
                else if (type.Namespace == "GameMain" && type.IsClass && !type.IsAbstract &&
                         type.BaseType == handlerBaseType)
                {
                    ProtoHandlerBase handler = (ProtoHandlerBase)Activator.CreateInstance(type);
                    m_packetHandlerList.Add(handler);
                    GameEntry.Event.Subscribe(handler.PacketId, handler.Handler);
                }
            }

            GameEntry.Event.Subscribe(WebSocketConnectedEventArgs.EventId, OnNetworkConnected);
            GameEntry.Event.Subscribe(WebSocketClosedEventArgs.EventId, OnNetworkClosed);
            GameEntry.Event.Subscribe(WebSocketSentEventArgs.EventId, OnNetworkSendPacket);
            GameEntry.Event.Subscribe(WebSocketMissHeartBeatEventArgs.EventId, OnNetworkMissHeartBeat);
            GameEntry.Event.Subscribe(WebSocketErrorEventArgs.EventId, OnNetworkError);
        }
コード例 #8
0
        public WebSocketClosedEventArgs Fill(IWebSocketChannel channel)
        {
            Channel = channel;

            return(this);
        }
コード例 #9
0
 public override void Clear()
 {
     Channel = default(IWebSocketChannel);
 }