public void OnUserLogin(object sender, MessageHeader msghdr)
        {
            TcpMessageChannel channel = (TcpMessageChannel)sender;
            MsgLogin          login   = (MsgLogin)msghdr;

            Log.Debug($"OnUserRegister() user:{login.username} password:{login.password}");
            MsgText text = new MsgText($"user {login.username} login OK");

            text.ackid = msghdr.id;
            channel.SendMessage(text);
            MsgFriendList friendlist = new MsgFriendList();

            for (int i = 0; i < 10; i++)
            {
                MsgFriend friend = new MsgFriend()
                {
                    friendid   = i,
                    friendname = $"friend{i}",
                    groupname  = $"group{i}",
                    join_time  = DateTime.Now
                };
                friendlist.Friends.Add(friend);
            }
            channel.SendMessage(friendlist);
        }
示例#2
0
 internal void TooManyClients(Socket ClientSocket)
 {
     lock (_ErrorMessageChannel)
     {
         MsgError error = new MsgError()
         {
             error = "连接通道太多,暂时无法提供服务"
         };
         _ErrorMessageChannel.Start(ClientSocket);
         _ErrorMessageChannel.SendMessage(error);
     }
     ClientSocket.Shutdown(SocketShutdown.Both);
     ClientSocket.Close();
     ClientSocket.Dispose();
     ClientSocket = null;
     Log.Warn("连接通道太多");
 }
 public virtual bool SendMessage <T>(T msg) where T : class
 {
     return(_TcpMessageChannel.SendMessage <T>(msg));
 }