예제 #1
0
        public static void AddConnection(HubCallerContext context)
        {
            var connectionId   = context.ConnectionId;
            var userIdentifier = context.UserIdentifier;
            var emailClaim     = context.User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Email)?.Value;

            if (userIdentifier != null)
            {
                var username      = context.User.Identity.Name;
                var websiteClient = new SignalRClient(username, emailClaim, connectionId);

                if (UserConnections.TryGetValue(userIdentifier, out var connectionList))
                {
                    connectionList.Add(websiteClient);
                }
                else
                {
                    UserConnections.TryAdd(userIdentifier, new List <SignalRClient>()
                    {
                        websiteClient
                    });
                }
            }
            else
            {
                VisitorConnections.Add(connectionId);
            }
        }