我们有一个需要与winform应用程序交互的Web应用程序(角度)。我们通过SignalR做到这一点。 浏览器和winform部署在citrix服务器上。 有一大堆IIS服务器,我们拥有webapi服务和信号集线器。
所有网络活动都通过F5负载均衡器进行。
我们面临的问题是如何确保在Chrome上运行Web应用程序,并且Windows窗体应用程序将两者连接到同一个SignalR Hub服务器。
我们无法使用基于Origin IP的stickey会话,因为所有用户都使用Citrix基础架构,因此所有用户都具有相同的源IP。 使用cookie - 我不确定cookie是否在浏览器和winform应用程序之间共享。并且在websocket场景中的任何cookie都不起作用(对吧?)
是使用背板的唯一解决方案吗? (目前不使用dotnet核心)
答案 0 :(得分:0)
覆盖或更改源信号器
私人任务流程谈判请求 - >
string connectionId = !string.IsNullOrEmpty(context.Request.QueryString["ConnId"]) ? context.Request.QueryString["ConnId"]: connectionId = Guid.NewGuid().ToString("d");
在querystring中发送conId