public override async Task OnConnectedAsync() { try { _connections.Add(Context.UserIdentifier, Context.ConnectionId); var result = await _chatService.GetGroupsAndRecords(Context.UserIdentifier); ChatResponse response = new ChatResponse(); if (result.Success) { response.Type = ChatResponseType.UpdateChatrooms; response.Data = result.Data; } else { response.Type = ChatResponseType.SystemErrorMessage; response.Data = result.Message; } await SendResponseToCaller(response); // Add users to hub groups result = await _chatService.GetUserGroups(Context.UserIdentifier); if (result.Success) { var groups = (List <string>)result.Data; foreach (string group in groups) { await AddToGroup(group, Context.ConnectionId); } } // Get All Users result = await _chatService.GetAllUsers(); await SendResponseToAll(new ChatResponse() { Type = ChatResponseType.UpdateOnlineUsers, Data = new { OnlineUsers = _connections.Keys, AllUsers = result.Data } }); await base.OnConnectedAsync(); } catch (Exception) { } }
public override Task OnConnected() { var id = Context.ConnectionId; var user = Context.User; int userId = int.Parse(user.Identity.GetUserId()); _connections.Add(userId, id); //userManager = (IUserManager)DependencyResolver.Current.GetService(typeof(IUserManager)); Models.UserViewModel uservm = userManager.GetViewModel(userId); uservm.UserIsOnLine = true; uservm = userManager.UpdateUserOnLineStatus(uservm); IHubContext context = GlobalHost.ConnectionManager.GetHubContext <ChatHub>(); Clients.AllExcept(id).userConnected(userId, uservm.UserDisplayName); return(base.OnConnected()); }
public void Dummy(string user) { string key = user; connections.Add(key, Context.ConnectionId); }