【问题标题】:Client invoke SignalR hub routine in web farm. No affinity客户端在 Web 场中调用 SignalR 集线器例程。没有亲和力
【发布时间】:2016-02-03 06:08:17
【问题描述】:

详情:

  • 2 台带有负载平衡器的 IIS 服务器。
  • 服务器上配置的WEB Sockets(win2012 r2)。
  • 两台服务器都有相同的站点运行 SignalR
  • 客户端是win7上的windows窗体应用。传输 = serverSentEvents
  • 使用 Redis 配置背板
  • Hub 通过 connectionid 向特定客户端发送消息
  • 我需要客户端响应同一服务器。某种类型的亲和力。
  • 我正在给客户打电话。
  • 我已经对集线器进行了响应调用(请参见下面的代码)
  • 问题:响应发送到网络场中的任何服务器,与发送原始消息的服务器不同

如何确保客户端响应网络场中的同一台服务器?

集线器中的服务器例程

public class MyHub : Hub
{
    public void RoutineOnMyHub(object myObject)
    {
        //do work
    }
}

客户代码:

_Hub.Invoke("RoutineOnMyHub", myObject);

【问题讨论】:

    标签: c# websocket signalr signalr-hub


    【解决方案1】:

    使用 SignalR 查看横向扩展: http://www.asp.net/signalr/overview/performance/scaleout-in-signalr

    您可以使用背板将网络场中的所有服务器连接到单个消息总线。

    【讨论】:

    • 是的,根据详细信息,配置了背板。
    猜你喜欢
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-16
    相关资源
    最近更新 更多