예제 #1
0
        public override async Task OnConnectedAsync()
        {
            var httpContext = Context.GetHttpContext();
            var otherUser   = httpContext.Request.Query["user"].ToString();
            var groupName   = GetGroupName(Context.User.GetUsername(), otherUser);

            await Groups.AddToGroupAsync(Context.ConnectionId, groupName);

            var group = await AddToGroup(groupName);

            await Clients.Group(groupName).SendAsync("UpdatedGroup", group);

            var messages = await _unityOfWork.MessageRepository.GetMessageThread(Context.User.GetUsername(), otherUser);

            if (_unityOfWork.HasChanges())
            {
                await _unityOfWork.Complete();
            }

            await Clients.Caller.SendAsync("ReceiveMessageThread", messages);
        }