Beispiel #1
0
        public void SendMessageToSession(bool isFstMessage, int sessionId, string message, int[] userIdlist)
        {
            var    id       = Context.ConnectionId;
            string userName = Context.User.Identity.GetUserName();
            int    userId   = int.Parse(Context.User.Identity.GetUserId());

            if (isFstMessage && userIdlist.Count() > 1)
            {
                if (!JoinSession(sessionId, userIdlist))
                {
                    throw new Exception("Failed to join Session");
                }
            }

            if (StoreMessage(sessionId, message))
            {
                Clients.Caller.updateActiveSessionMessages(sessionId, userName, message);
                foreach (var uid in userIdlist.Except(new int[] { userId }))
                {
                    foreach (var connectionId in _connections.GetConnections(uid))
                    {
                        Clients.Client(connectionId).updateSessionMessages(sessionId, userName, message, userIdlist);
                    }
                }
                //Clients.AllExcept(id).updateSessionMessages(sessionId, userName, message);
            }
            return;
        }
Beispiel #2
0
        public async Task SendMessage(string user, string message)
        {
            HashSet <string> connectedUsers = new HashSet <string>();
            string           key            = user;

            foreach (var connectionId in connections.GetConnections(key))
            {
                connectedUsers.Add(connectionId);
            }
            // Send Messages to all users
            await Clients.All.SendAsync("ReceiveMessage", user, message);

            // Send messages to specific users
            // await Clients.Clients(connectedUsers.ToList()).SendAsync("ReceiveMessage", user, message);
        }
Beispiel #3
0
        private async Task GroupUserConnection(string groupName, string user, bool isAdd = true)
        {
            var connections = _connections.GetConnections(user);

            foreach (string connection in connections)
            {
                if (isAdd)
                {
                    await AddToGroup(groupName, connection);
                }
                else
                {
                    await RemoveFromGroup(groupName, connection);
                }
            }
        }