Пример #1
0
        /// <summary>
        /// 登出
        /// </summary>
        /// <param name="onLineUser"></param>
        public void Logout(OnLineUser onLineUser)
        {
            OnLineUsers.Remove(onLineUser.User.Id);
            LogoutEvent?.Invoke(onLineUser.User);

            SendSystemMessage($"用户\t{onLineUser.User.Name}\t离开了聊天室");

            // 广播用户登出信息
            Broadcast(new SystemMessage()
            {
                RemoveUserId = onLineUser.User.Id
            });
        }
Пример #2
0
        /// <summary>
        /// 登陆
        /// 将客户端远程对象放入服务端的远程对象中
        /// </summary>
        /// <param name="onLineUser">新用户</param>
        /// <returns>带着服务端生成的自增ID的用户</returns>
        public OnLineUser Login(OnLineUser onLineUser)
        {
            var user = onLineUser.User;

            // 通过LoginEvent获取自增ID
            user            = LoginEvent?.Invoke(user);
            onLineUser.User = user;

            OnLineUsers[user.Id] = onLineUser;

            Broadcast(user);
            SendSystemMessage($"欢迎\t{user.Name}\t进入聊天室");

            return(onLineUser);
        }