示例#1
0
 /// <summary>
 /// 释放链接的时候
 /// </summary>
 /// <param name="stopCalled"></param>
 /// <returns></returns>
 public override Task OnDisconnected(bool stopCalled)
 {
     if (Context.RequestCookies.ContainsKey("ClientUserId"))
     {
         var ClientUserId = Context.RequestCookies["ClientUserId"];
         var user         = new VisitorConnectUser();
         VisitorOnlineUsers.TryRemove(ClientUserId.Value, out user);
         var serviceUser = new ServiceConnectUser();
         ServiceOnlineUsers.TryRemove(ClientUserId.Value, out serviceUser);
     }
     return(base.OnDisconnected(stopCalled));
 }
示例#2
0
        /// <summary>
        /// 访客连接
        /// </summary>
        /// <param name="user"></param>
        /// <returns></returns>
        private async Task VisitorUserConnect(string ClientUserId)
        {
            //游客 链接
            var user = new VisitorConnectUser()
            {
                ClientUserId       = ClientUserId,
                ClientConnectionId = Context.ConnectionId,
                VisitorUserName    = "******",
            };

            VisitorOnlineUsers.TryAdd(user.ClientUserId, user);
            await Clients.Caller.ConnecteResult("连接成功");

            if (ServiceOnlineUsers.Count > 0)
            {
                //通知所有客服 端有访客 接入
                Clients.Clients(ServiceOnlineUsers.Select(t => t.Value.ClientConnectionId).ToList()).AddNewsConnectUser(user);
            }
        }