Я не могу заставить веб-сокеты работать на моем сайте, когда я обращаюсь к нему через виртуальный IP-адрес. Если я использую настоящий IP (интранет), все работает отлично. Если я использую виртуальный IP-адрес, я получаю это в консоли Google Chrome:
SignalR: Connecting to websocket endpoint 'ws://123.456.78.9/signalr/connect?transport=webSockets&connectionToken=0vWQGMzm6Hb59MMbQIEPODQnjqUUxAMmiITaNHUZYZ1tfAK%2FQvXCVDRNll0y4vQkzNcSdK7smLN%2FzCRFtK7AWogA%2FjfwNt47eUu%2F7TdwFYUZCkZlQMP8xqkaY5kfA0oO9N2F5tQYBGedapl3YxHjNQ%3D%3D&connectionData=%5B%7B%22name%22%3A%22jobhub%22%7D%5D&tid=3'.
SignalR: Closing the Websocket.
И я получаю это на MSIE:
SCRIPT12031: WebSocket Error: Network Error 12031, The connection with the server was reset
Есть ли способ заставить это работать?
Поэтому, чтобы исправить это, балансировщик нагрузки должен быть настроен специально для веб-сокетов (в конечном итоге он будет по умолчанию). Как это сделать, зависит от производителя, вот ссылка для NetScaler:
http://support.citrix.com/proddocs/topic/ns-system-10-map/ns-ac-config-websock-tsk.html