Clients.User(..) 中的 SignalR 连接客户端不应该存在

SignalR connected client in Clients.User(..) shouldn't exist

在我的 SignalR 集线器中,我使用以下方法检查用户是否有活动连接:

var receivingClient = Clients.User(receiver);

        if (receivingClient != null)
        {

但我也通过 OnConnected \ OnDisconnected(在 ConcurrentDictionary 中)手动跟踪在线用户。现在,即使我关闭所有内容并从头开始启动服务器(例如 VS 中的 IISExpress),上面的代码部分 returns 也是不存在的连接的结果。 假设我从用户 A 发送给用户 B。我启动服务器,与用户 A 一起上线,然后向 B 发送消息: 上面的代码 returns a Microsoft.AspNetCore.SignalR.Internal.UserProxy<mySite.Services.ChatHub>.

我不明白。用 null 检查来检查现有的客户端连接是否错误?我应该完全依赖我的手动跟踪吗?

感谢您的一些见解!

(PS: 这都在同一台服务器上 - 没有负载平衡/分片)

Clients.User(receiver) returns 用于为给定用户调用方法的类型。与你传入的用户是否存在无关

Is it wrong to check for existing client connections with a null check? Should I exclusively rely on my manual tracking?

是的。使用手动跟踪。