与F5和Citrix的SignalR粘性会话

时间:2017-12-05 16:22:16

标签: signalr f5 signalr-backplane sticky-session

我们有一个需要与winform应用程序交互的Web应用程序(角度)。我们通过SignalR做到这一点。 浏览器和winform部署在citrix服务器上。 有一大堆IIS服务器,我们拥有webapi服务和信号集线器。

所有网络活动都通过F5负载均衡器进行。

我们面临的问题是如何确保在Chrome上运行Web应用程序,并且Windows窗体应用程序将两者连接到同一个SignalR Hub服务器。

我们无法使用基于Origin IP的stickey会话,因为所有用户都使用Citrix基础架构,因此所有用户都具有相同的源IP。 使用cookie - 我不确定cookie是否在浏览器和winform应用程序之间共享。并且在websocket场景中的任何cookie都不起作用(对吧?)

是使用背板的唯一解决方案吗? (目前不使用dotnet核心)

1 个答案:

答案 0 :(得分:0)

覆盖或更改源信号器

私人任务流程谈判请求 - >

   string connectionId = !string.IsNullOrEmpty(context.Request.QueryString["ConnId"]) ? context.Request.QueryString["ConnId"]: connectionId = Guid.NewGuid().ToString("d");

在querystring中发送conId