使用 SignalR 2.2.0,我想验证有关在多服务器横向扩展设置中执行集线器方法的客户端的观察结果。
我使用 SQL Server 横向扩展消息总线在多服务器模型中运行 SignalR。
当客户端连接时,OnConnected
会按预期调用 Hub 的方法。我保存Context.ConnectionId
在静态字典中。
当客户端稍后调用集线器的方法时,似乎场中的另一台服务器正在执行集线器方法,而不是最初运行 OnConnected 方法的服务器。hub 方法中的Context.ConnectionId
值是正确的,但它在字典中不存在。
这是扩展模型中的预期行为吗?如果是这样,那么我假设我应该将连接状态数据保存在数据库中,以便所有服务器上的所有 Hub 都能够根据 ConnectionId 查找连接状态。