VICK Ответов: 0

Signalr подключен, но не вызывает сообщение


Я работаю с SignalR для связи в реальном времени в моем приложении довольно долго, но в течение последних нескольких дней я столкнулся со странной проблемой,то есть после того, как некоторое время работал нормально, signalR, кажется, застрял таким образом, что его отображение подключено, получение нового идентификатора соединения при каждой попытке, но не вызов сообщений, используемых либо из JS-клиента, либо из Windows/Web-клиента.



Любая идея/помощь будет действительно оценена?

Что я уже пробовал:

Пробовал Гугл, MSDN, так и так ASP.NET статьи, связанные с SignalR.

Aless Alessio

Не могли бы вы вставить свой код? иначе я понятия не имею, что происходит.

VICK

ВАР чат = $.связи.Майхуб;

$. connection. hub. start (). done(функция () {

группы var = [];
чат.сервер.подписаться('@пользователей.Идентичность.Имя', группы);
//После этой строки он не показывает никакого ответа.

});

Aless Alessio

А как насчет вашего хаба (серверного кода)? А конфигурация запуска?
Если вы можете отладить свой серверный метод "subscribe", сможете ли вы поставить в нем точку останова и проверить, действительно ли серверный метод вызывается после " chat.server.subscribe('@User.Идентичность.Имя', группы);"?

VICK

Он отлично работает, когда сервер SignalR запускается после сброса IIS(с помощью команды iisreset через cmd), и он продолжает нормально работать в течение довольно долгого времени, но внезапно он перестает общаться с сервером и также не достиг точки останова.

VICK

Я смог воспроизвести этот сценарий, сделав следующее.

1-Создайте приложение(имеющее сервер SignalR, т. е. концентратор)
2-Запустите приложение, оно работает нормально.
3-остановите или перезапустите IIS.
4-клиент SignalR, похоже, будет повторно подключен и получать новый идентификатор соединения каждый раз после шага 3.
5-но не дошел до сервера SignalR.

Aless Alessio

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

$.связи.хаб.отключается(функция() {
setTimeout(функция() {
$.связи.хаб.начать();
}, 5000); / / перезапуск соединения через 5 секунд.
});

VICK

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

Aless Alessio

не могли бы вы опубликовать немного больше кода (клиент и сервер) или загрузить концентратор/конфигурацию куда-нибудь? в противном случае мне очень трудно помочь

Aless Alessio

Итак, если вы поставите точку останова в коде, который я вам послал,
после того, как он отключается, он снова подключается через 5 секунд?

0 Ответов