コード例 #1
0
        /// <summary>
        /// Add a connection Id to a user and save it in the DB.
        /// </summary>
        /// <param name="auth"></param>
        /// <param name="connectionId"></param>
        public static void AddUserConnectionId(AuthenticationResponse auth, string connectionId)
        {
            try {
                if (UserConnectionIds == null)
                {
                    UserConnectionIds = new Dictionary <AuthenticationResponse, List <string> >();
                    log.Warning($"{ClassName} ----- User connection list was null, newly created!");
                }

                if (UserConnectionIds.Count == 0 || UserConnectionIds.Count(x => x.Key.User._id == auth.User._id) == 0)
                {
                    UserConnectionIds.Add(auth, new List <string>());
                    log.Debug($"{ClassName} userId = [{auth.User._id}] successfully referenced into connection list.");
                }

                UserConnectionIds.First(x => x.Key.User._id == auth.User._id).Value.Add(connectionId);
            }
            catch (Exception e) {
                log.Warning($"{ClassName} Unable to add auth. Error [{e.Message}] - Stack [{e.StackTrace}].");
            }

            try {
                SaveUserConnectionIds();
            }
            catch (Exception e) {
                log.Warning($"{ClassName} Unable to add user count from database! Exception = [{e.Message}]");
            }
        }
コード例 #2
0
ファイル: BaseHub.cs プロジェクト: TomasGC/Cocotte-BE
        /// <summary>
        /// Event: disconnected.
        /// </summary>
        /// <param name="exception"></param>
        /// <returns></returns>
        public override Task OnDisconnectedAsync(Exception exception)
        {
            string connectionId = Context.ConnectionId;

            try {
                if (UserConnectionIds.Count(x => x.Value.Contains(connectionId)) != 0)
                {
                    BaseHubHandler <T> .RemoveUserConnectionId(connectionId);
                }
            }
            catch (Exception e) {
                log.Warning($"{ClassName} Error disconnecting #1! StackTrace = {e.StackTrace}.");
            }

            try {
                if (UserConnectionIds.Count(x => x.Value.Contains(connectionId)) == 0)
                {
                    return(base.OnDisconnectedAsync(exception));
                }
            }
            catch (Exception e) {
                log.Warning($"{ClassName} Error disconnecting #2! StackTrace = {e.StackTrace}.");
            }

            return(base.OnDisconnectedAsync(exception));
        }