2013-04-18 1 views
1

Когда я перерабатываю свой пул приложений для сайта, на котором запущен концентратор SignalR, клиенты javascript не могут повторно подключиться. Но все нормально, если клиент делает обновление в своем браузере.Невозможно повторно подключить клиент SignalR JS после повторного использования пула приложений

В журнале клиенты консоли, эти строки повторяют несколько раз каждую секунду после сброса пула приложений (я заменил маркер соединения с ABCD)

LOGG: [15:51:19 UTC+0200] SignalR: Raising the reconnect event 
LOGG: [15:51:19 UTC+0200] SignalR: An error occurred using longPolling. Status = parsererror. undefined 
LOGG: [15:51:19 UTC+0200] SignalR: SignalR: Initializing long polling connection with server. 
LOGG: [15:51:19 UTC+0200] SignalR: Attempting to connect to 'http://lab/signalr/reconnect?transport=longPolling&connectionToken=abcd' using longPolling. 
LOGG: [15:51:19 UTC+0200] SignalR: Raising the reconnect event 

Я попытался отключить все проверки подлинности на хаб, но все тот же результат. И сервер и клиент работает на SignalR v1.0.1

hubconnection на клиенте устанавливается следующим образом:

var connection = $.hubConnection('http://lab:8097', { logging: true }); 
var proxy = connection.createHubProxy('task'); 
connection.start({ jsonp: true }).done(function() { 
    proxy.invoke('OpenTask', id); 
}); 

Im также с использованием crossdomain на стороне сервера регистрации хаба:

RouteTable.Routes.MapHubs(new HubConfiguration { EnableCrossDomain = true }); 

Сервер работает на IIS 7.5, а клиент - IE9.

У кого-нибудь есть идея, что не так?

ответ

3

Эта проблема будет решена в 1.1 RTW (пока не выпущена, в настоящее время только бета отсутствует).

Для справки: Исправление: https://github.com/SignalR/SignalR/issues/1809. Если вы хотите получить исправление ранее, вы можете реализовать изменения, отмеченные в проблеме.

Наконец, если вы решите реализовать исправление, вам нужно будет обработать событие .disconnected в соединении и полностью перезапустить соединение.

+0

Спасибо! Я применил javascript 1.1 RTW, и теперь повторное повторное соединение останавливается через 30 секунд, а не повторяется бесконечно! – Svendberg

+0

Было ли это разрешено? Потому что я использую 1.1.1 и испытываю такое же поведение - клиент не повторно подключается после использования пула приложений. См. Мое описание здесь: https://github.com/SignalR/SignalR/issues/2095 – Jake