Как клиент браузера gmail обнаруживает отключение от Интернета / сервера (скорость и масштабируемость) - PullRequest
3 голосов
/ 26 мая 2011

У нас есть браузерное приложение (SaaS), где мы хотели бы уведомить пользователя в случае потери интернет-соединения или потери соединения с сервером. Gmail делает это очень хорошо, в тот момент, когда я отключаю интернет-кабель или отключаю сетевой трафик, он сразу говорит, что не может связаться с сервером, и дает мне обратный отсчет для повторной попытки.

Как лучше всего реализовать что-то подобное? Хотел бы я, чтобы клиентский браузер отправлял запросы AJAX серверу приложений каждую секунду, или имел бы отдельный сервер, который просто сообщает "живым". Масштабируемость станет проблемой в будущем.

Ответы [ 2 ]

0 голосов
/ 26 мая 2011

Когда сервер сообщает клиенту (push через Comet), вам необходимо поддерживать открытое соединение для каждого клиента. Это может быть довольно дорого, если у вас большое количество клиентов. Масштабируемость может быть проблемой, как вы упомянули. Другой вариант - опрос. Вместо того, чтобы делать это каждую секунду, вы можете проводить опрос каждые 5-10 секунд или около того.

Что еще можно посмотреть, это Веб-сокеты (разработанный как часть HTML 5), но я не уверен, широко ли он поддерживается (AFAIK поддерживается только Chrome).

0 голосов
/ 26 мая 2011

Поскольку GMail уже проверяет новые сообщения электронной почты каждые несколько секунд и информацию чата еще чаще, он может без отдельного запроса определить, не работает ли соединение. Если вы не используете Ajax для какого-либо другого вида постоянного обновления, тогда да, ваш сервер просто ответил бы каким-нибудь «живым» сигналом. Обратите внимание, что вы не можете использовать отдельный сервер из-за междоменных ограничений Ajax.

...