예제 #1
0
 void s2c_stub_OnResSend(Lidgren.Network.NetIncomingMessage im, S2C.Message.ResSend data)
 {
     if (data.ret == (short)S2C.Message.Flag.kFlagFail)
     {
         Console.WriteLine("Sending message to {0} was failed. Result = [{1}:{2}].", data.to_id, data.ret, data.ret_message);
     }
 }
예제 #2
0
            public static void __Dispatch(SprotoRpc.RpcInfo info)
            {
                Sproto.SprotoTypeBase ret = null;
                switch (info.tag)
                {
                case Protocol.foobar.Tag:
                    ret = S2C.foobar((SprotoType.foobar.request)info.requestObj);
                    break;

                case Protocol.foo.Tag:
                    ret = S2C.foo();
                    break;

                case Protocol.blackhole.Tag:
                    S2C.blackhole((SprotoType.blackhole.request)info.requestObj);
                    break;

                case Protocol.bar.Tag:
                    S2C.bar();
                    break;

                default:
                    break;
                }
                if (null != info.Response)
                {
                    SendData(info.Response(ret));
                }
            }
예제 #3
0
 void s2c_stub_OnNotifyLogout(Lidgren.Network.NetIncomingMessage im, S2C.Message.NotifyLogout data)
 {
     Console.WriteLine("{0} leaved out.", data.logout_id);
     if (data.logout_id == this.id)
     {
         Close();
     }            
 }
예제 #4
0
        void s2c_stub_OnNotifySendAll(Lidgren.Network.NetIncomingMessage im, S2C.Message.NotifySendAll data)
        {
            Console.WriteLine("OnNotifySendAll...[ThreadID:{0}]", Thread.CurrentThread.ManagedThreadId);

            if (data.from_id == id)
                return;

            Console.WriteLine("[{0}] {1}", data.from_id, data.message);
        }
예제 #5
0
 /// <summary>
 /// 移除客户端连接
 /// </summary>
 /// <param name="_socketId"></param>
 public static void Remove(string _socketId)
 {
     if (Models.ContainsKey(_socketId))
     {
         S2C client = Models[_socketId];
         Models.Remove(_socketId);
         client.DisConnect();
     }
 }
예제 #6
0
        /// <summary>
        /// 添加客户端
        /// </summary>
        /// <param name="_socket"></param>
        public static void Add(Socket _socket)
        {
            S2C _client = new S2C(_socket);

            ConnectionEventObserver.Instance.Dispatch(ConnectionEventKey.In, new ClientModel()
            {
                RemoteEndPoint = _socket.RemoteEndPoint.ToString(),
                SocketID       = _client.SocketID
            });

            Models.Add(_client.SocketID, _client);
        }
예제 #7
0
        void OnNotifyJoin(string message, S2C.Message.NotifyJoin data)
        {
            if (!session.group.userList.ContainsKey(data.uid))
            {
                User newUser = new User();
                newUser.uid = data.uid;
                newUser.publicIp = data.publicIp;
                newUser.publicPort = data.publicPort;

                session.group.userList[data.uid] = newUser;
            }
            else
            {
                Console.WriteLine("[OnNotifyJoin] Already added user[{0}].", data.uid);
            }
        }
예제 #8
0
 void OnResUserList(string message, S2C.Message.ResUserList data)
 {
     session.group.userList.Clear();
     foreach (var key in data.userList.Keys)
     {
         session.group.userList[key] = data.userList[key];
     }
 }
예제 #9
0
        void OnResLogin(string message, S2C.Message.ResLogin data)
        {
            session.user.uid = data.uid;

            if (data.isOk)
            {
                session.user.publicIp = data.publicIp;
                session.user.publicPort = data.publicPort;
                session.isLogin = true;
            }
            else
            {
                session.isLogin = false;
            }
            Console.WriteLine("[OnResLogin] Is ok? = {0}, Error Message = {1}", data.isOk, data.errorMessage);
        }
예제 #10
0
 void OnResLogout(string message, S2C.Message.ResLogout data)
 {
     session.isLogin = false;
     Console.WriteLine("[OnResLogout] Is ok? = {0}, Error Message = {1}", data.isOk, data.errorMessage);
 }
예제 #11
0
 void OnResJoin(string message, S2C.Message.ResJoin data)
 {
     if (!data.isOk)
     {
         session.user.group = "";
     }
     else
     {
         session.group.name = session.user.group;
     }
     Console.WriteLine("[OnResJoin] Is ok? = {0}, Error Message = {1}", data.isOk, data.errorMessage);
 }
예제 #12
0
 void OnResLeave(string message, S2C.Message.ResLeave data)
 {
     Console.WriteLine("[OnResLeave] Is ok? = {0}, Error Message = {1}", data.isOk, data.errorMessage);
 }
예제 #13
0
 void OnNotifyLeave(string message, S2C.Message.NotifyLeave data)
 {
     if (session.group.userList.ContainsKey(data.uid))
     {
         session.group.userList.Remove(data.uid);
     }
     else
     {
         Console.WriteLine("[OnNotifyLeave] Not exists user[{0}].", data.uid);
     }
 }
예제 #14
0
        void s2c_stub_OnResLogin(Lidgren.Network.NetIncomingMessage im, S2C.Message.ResLogin data)
        {
            Console.WriteLine("OnResLogin...[ThreadID:{0}]", Thread.CurrentThread.ManagedThreadId);

            is_login = data.ret == (short)S2C.Message.Flag.kFlagSuccess ? true : false;

            if (is_login)
            {
                Console.WriteLine("You entered in.", data.ret);
            }
            else
            {
                Console.WriteLine("You can't entered in.", data.ret);
            }
        }
예제 #15
0
 void OnNotifyChat(string message, S2C.Message.NotifyChat data)
 {
     Console.WriteLine("[{0}] {1}", data.uid, data.chat);
 }
예제 #16
0
 void s2c_stub_OnNotifyLogin(Lidgren.Network.NetIncomingMessage im, S2C.Message.NotifyLogin data)
 {
     Console.WriteLine("OnNotifyLogin...[ThreadID:{0}]", Thread.CurrentThread.ManagedThreadId);
     Console.WriteLine("{0} entered in.", data.new_id);
 }
예제 #17
0
 void s2c_stub_OnNotifySend(Lidgren.Network.NetIncomingMessage im, S2C.Message.NotifySend data)
 {
     if (data.from_id == id)
         return;
     Console.WriteLine("[{0}] {1}", data.from_id, data.message);
 }