Обработка сброшенных на стороне сервера обновлений long-poll / comet в jquery - PullRequest
0 голосов
/ 17 января 2011

У меня есть приложение, которое использует открытое соединение JQuery Ajax для длинных опросов / обработки комет обновлений.

Иногда браузер и сервер теряют это соединение (сбой сервера, проблемы с сетью и т. Д. И т. Д.).

Я бы хотел, чтобы клиент обнаружил сбой обновления и сообщил пользователю об обновлении страницы.

Изначально казалось, что у меня есть 2 варианта:

  • обрабатывает условие 'error' в ajax-вызове JQuery
  • обрабатывает условие 'complete' в ajax-вызове JQuery

Однако при тестировании кажется, что ни одно из этих условий не срабатывает, когда сервер прерывает запрос.

Как я могу заставить своего клиента понять, что сервер ушел?

1 Ответ

1 голос
/ 17 января 2011

Разве нельзя добавить функцию setInterval(), которая запускается каждые несколько секунд или минут?Таким образом, вы можете запустить скрипт, который проверяет, работает ли сервер, и, если нет, сбросить кометное соединение.(Хотя я не знаю, что именно вы используете для длинного опроса, поэтому я не знаю, возможно ли сбросить это соединение без перезагрузки страницы. Если нет, вы все равно можете отобразить сообщение пользователю).

Вот как то так:

var check_server = setInterval(function() {
  // run server-check-script...
  // if (offline) { // reset }
}, 60000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...