По какой-то причине SignalR просто прекратит вызов клиентских методов через короткий промежуток времени (примерно 1 час или менее, я оцениваю). У меня есть страница, на которой отображаются предупреждения ... очень простая реализация. Вот Javascript:SignalR останавливает работу после A
$(function() {
// enable logging for debugging
$.connection.hub.logging = true;
// Declare a proxy to reference the hub.
var hub = $.connection.alertHub;
hub.client.addAlert = function (id, title, url, dateTime) {
console.log(title);
};
$.connection.hub.start().done(function() {
console.log("Alert Ready");
});
});
Если я обновить страницу, она снова работает в течение часа, затем прекратить называть событие клиента addAlert
. В журнале нет ошибок, никаких предупреждений. Последнее событие в журнале (кроме пингов на сервер) является:
[15:18:58 GMT-0600 (CST)] SignalR: Запуск клиента ступицу событие 'addAlert' на ступице 'AlertHub' ,
Многие из этих событий появятся ненадолго, а затем просто остановитесь, хотя сервер все равно должен их отправлять.
Я использую Firefox 35.0.1 на Mac и SignalR 2.0.0.
Я понимаю, что обход - это заставить обновлять страницу каждые 10 минут или около того, но я ищу способ исправить основную причину проблемы.
Я включил трассировку SignalR на сервере. Я создал «предупреждение» на сервере после нового обновления страницы «Предупреждение» и появилось предупреждение. Я ждал около 10 минут, и я попробовал еще раз, и он не смог пройти. Вот то, что журналы чтения (извините за многословие, не уверен, что имеет отношение):
SignalR.Transports.TransportHeartBeat Information: 0 : Connection b8b21c4c-22b4-4686-9098-cb72c904d4c9 is New.
SignalR.Transports.TransportHeartBeat Verbose: 0 : KeepAlive(b8b21c4c-22b4-4686-9098-cb72c904d4c9)
SignalR.Transports.TransportHeartBeat Verbose: 0 : KeepAlive(b8b21c4c-22b4-4686-9098-cb72c904d4c9)
SignalR.Transports.TransportHeartBeat Verbose: 0 : KeepAlive(b8b21c4c-22b4-4686-9098-cb72c904d4c9)
SignalR.Transports.TransportHeartBeat Verbose: 0 : KeepAlive(b8b21c4c-22b4-4686-9098-cb72c904d4c9)
Есть еще несколько десятков из SignalR.Transports.TransportHeartBeat
сообщений, но ничего.
Установили ли вы журналы в концентраторе на стороне сервера, чтобы узнать, отключен ли ваш клиент до остановленных действий? –
У меня нет. Я сделаю это и опубликую результаты. Благодарю. –
Помимо журналов. Какой транспорт вы используете, и вы проходите через прокси? Если да, попробовали ли вы использовать https? – Pawel