【发布时间】:2019-08-09 02:08:48
【问题描述】:
我在 IIS 中使用 SignalR 和一个网络场,目前有 3 个服务器,请求通过 ARR 进行负载平衡。
发生了某些外部事件,我希望由客户端连接的服务器处理这些事件。所以我想跟踪客户端当前连接的 3 台服务器中的哪台。
我认为我可以使用 OnConnected 来执行此操作,并在该方法中将 MachineName 与 Redis 中的 ConnectionID 存储在一起。 问题是 OnConnected 似乎被称为与客户端连接的服务器不同的服务器。
经过调查,似乎有三个调用,一个到 /negiotate,一个到 /connect,一个到 /start。 /connect 似乎是在持续时间内保持的 websocket 连接,其他的只是暂时的。 这三个连接可能发生在不同的服务器上,似乎 websocket 连接可以到服务器 A(这就是客户端的 SignalR 连接要连接的服务器),但 OnConnected 在服务器 B 上被触发。
我想知道我是否忽略了一些可以让我看到 SignalR 连接实际连接到哪个服务器的东西?
谢谢,
会
【问题讨论】: