Сигнальные сессии с F5 и Citrix
У нас есть веб-приложение (угловое), которое должно взаимодействовать с приложением winform. мы делаем это через SignalR. браузер и winform развернуты на сервере Citrix. Есть веб-ферма серверов IIS, и на тех, у нас есть сервисы webapi, а также концентраторы signalR.
вся сетевая активность проходит через нагрузочный баланс F5.
Проблема, с которой мы сталкиваемся, заключается в том, чтобы убедиться, что веб-приложение, работающее в Chrome, и приложение Windows Form подключаются к одному и тому же SignalR Hub Server.
мы не можем использовать сессии с использованием stickey на основе Origin IP, поскольку все пользователи используют инфраструктуру citrix, поэтому все они имеют одинаковый IP-адрес источника. используя cookie - я не уверен, что cookie используется совместно браузером и приложением winform. и в любом случае cookie в сценарии websocket не работает (верно?)
это единственное решение с использованием объединительной платы? (в данный момент не используется ядро dotnet)
1 ответ
Переопределить или изменить исходный сигнал
Частная задача ProcessNegotiationRequest->
string connectionId = !string.IsNullOrEmpty(context.Request.QueryString["ConnId"]) ? context.Request.QueryString["ConnId"]: connectionId = Guid.NewGuid().ToString("d");
И отправить conId в строке запроса