0

we have a web application (angular) that needs to interact with a winform application. we do that via SignalR. the browser and winform are deployed on a citrix server. There is a webfarm of IIS servers and on those we have the webapi services and also the signalR Hubs.

all network activity goes via F5 loadbalancer.

the problem we are facing - is how to make sure the web applicaion running on chrome, and the windows forms application connect both to the same SignalR Hub Server.

we cannot use stickey sessions based on Origin IP as all users are using the citrix infrastructure, so all have the same origin IP. using a cookie - i am not sure that the cookie is shared between the browser and the winform app. and anyways cookie in a websocket scenario isnt working (right ?)

is the only solution using a backplane ? (not using dotnet core at the moment)

May
  • 240
  • 2
  • 10

1 Answers1

0

Override or Change source Signalr

Private Task ProcessNegotiationRequest-->

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

And send conId in querystring

Ufuk Aydın
  • 158
  • 3
  • i've found out that i can use QueryString option in the connection to the signalr hub, and that query string is being send in all requests to the server. i am looking into making an iRule in F5 using the value in the query string. – May Dec 09 '17 at 19:49