Beispiel #1
0
        /// <summary>
        /// 用户连接方法重写
        /// </summary>
        /// <returns></returns>
        public override Task OnConnectedAsync()
        {
            IHttpContextAccessor httpContextAccessor = ServiceContext.GetService <IHttpContextAccessor>();
            string userId = string.Empty;

            if (httpContextAccessor.HttpContext.Session.GetString("UserId") != null)
            {
                userId = httpContextAccessor.HttpContext.Session.GetString("UserId");
            }
            SignalRCore.AddUser(new SignalRUser()
            {
                UserId       = userId,
                ConnectionId = Context.ConnectionId
            });
            //表示当前用户已经登录
            if (userId != string.Empty)
            {
                //推送指定消息记录
                SignalRCore.PushCurrentUserMessage(userId, this);
            }
            return(base.OnConnectedAsync());
        }
Beispiel #2
0
 /// <summary>
 /// 用户断开连接方法重写
 /// </summary>
 /// <param name="exception"></param>
 /// <returns></returns>
 public override Task OnDisconnectedAsync(Exception exception)
 {
     SignalRCore.RemoveUser(Context.ConnectionId);
     return(base.OnDisconnectedAsync(exception));
 }