0

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

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

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

我们不能使用基于 Origin IP 的粘性会话,因为所有用户都使用 citrix 基础架构,因此所有人都具有相同的源 IP。使用 cookie - 我不确定 cookie 是否在浏览器和 winform 应用程序之间共享。无论如何,websocket场景中的cookie不起作用(对吗?)

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

4

1 回答 1

0

覆盖或更改源信号器

私有任务进程NegotiationRequest-->

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

并在查询字符串中发送 conId

于 2017-12-08T13:52:22.950 回答