2013-08-23 2 views
1

Я использую SignalR, но столкнулся с проблемой. Когда соединение запускается в одном окне браузера, а затем пользователь входит в другое окно браузера, пользовательский идентификатор изменяется (это вызывает ошибку «System.InvalidOperationException: непризнанный идентификатор пользователя». Идентификатор пользователя не может меняться во время активного соединения SignalR на сервер, когда метод вызывается на ступицеМетод отказа SignalR не вызывается при изменении идентификатора пользователя

Я использую этот код на клиенте:.

proxy.server.analyze(content) 
.done(function() { 
    console.log('Success!'); 
}) 
.always(function() { 
    console.log('This is always called!'); 
}) 
.fail(function (error) { 
    console.log('This is never called!'); 
}); 

когда я вижу ошибки на сервере функцию не в состоянии никогда не называют, так что по-видимому, не имеет отношения к клиенту для решения этой проблемы, а также для остановки и запуска соединения.

Итак, есть ли «лучший способ» справиться с этим делом? Как я могу обнаружить на клиенте, что пользовательский идентификатор изменился в другом окне браузера, и остановить и снова запустить соединение?

ответ

1

Это известная проблема.

Он исправлен в следующем выпуске. Вот проблема, которая в конечном итоге также устраняет вашу проблему: https://github.com/SignalR/SignalR/issues/2106.

Наконец, в следующей версии (0.2.0) произойдет то, что соединение вызовет ошибку и остановится. Поэтому вы сможете обрабатывать свое дело с помощью обработчика ошибок или, конечно, вы можете связать себя с «отключенным» событием.

Если вы готовы попробовать предварительные релизы, вы всегда можете вытянуть из OFFICAL источника или webstack каждую ночь (http://www.myget.org/F/aspnetwebstacknightly/)

+0

Эй Тейлор ... что он может здесь проблема: https://github.com/SignalR/SignalR/вопросы/2618 –

Смежные вопросы