Exemple #1
0
 /// <summary>
 /// 用户登录(需要更新列表)
 /// </summary>
 public async Task SendUserLogin()
 {
     GetUserList();
     var chatUserLoginVM = new ChatUserLoginVM
     {
         LoginUser    = new TzChatUser(UserVM),
         ChatUserList = ChatUserList
     };
     await Clients.All.SendAsync("SendUserLogin", chatUserLoginVM);
 }
Exemple #2
0
        /// <summary>
        /// 重写断开事件
        /// </summary>
        /// <param name="exception"></param>
        /// <returns></returns>
        public override Task OnDisconnectedAsync(Exception exception)
        {
            // var user = ChatUserList.FirstOrDefault(u => u.UserName.Equals(_tzChatRepository.GetThisName()));
            //var user = ChatUserList.SingleOrDefault(u => u.UserName == TzEncryptHelper.StringEncrypt(_tzChatRepository.GetThisName()));
            var user = ChatUserList.SingleOrDefault(u => u.ConnectionId == Context.ConnectionId);

            //判断用户是否存在,存在则删除
            if (user != null)
            {
                //删除用户
                ChatUserList.Remove(user);
            }
            //更新所有用户的列表
            GetUserList();
            var chatUserLoginVM = new ChatUserLoginVM
            {
                //LoginUser = new TzChatUser(UserVM),
                LoginUser    = new TzChatUser(TzChatStatus.OnUserVM),
                ChatUserList = ChatUserList
            };

            Clients.All.SendAsync("UserUnonline", chatUserLoginVM);
            return(base.OnDisconnectedAsync(exception));
        }