/// <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)); }
/// <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); } }