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); }
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)); }