コード例 #1
0
ファイル: ChatHub.cs プロジェクト: LeoZhouCoder/SignalChat
        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)
            {
            }
        }
コード例 #2
0
ファイル: ChatHub.cs プロジェクト: jasonliaocn/SignalRChat
        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());
        }
コード例 #3
0
        public void Dummy(string user)
        {
            string key = user;

            connections.Add(key, Context.ConnectionId);
        }