У меня есть сервер и много клиентов (около 50 клиентов), которые подключаются к этому серверу на основе веб-приложения, которое, конечно, основано на протоколе HTTP, который, в свою очередь, использует TCP / IP (поправьте меня, если я ошибаюсь, потому что я Я не очень хорош в сети).
Проблема заключается в том, что я должен разработать механизм оповещения, при котором, когда кто-то отправляет форму с опасными значениями, менеджер (который также подключен через то же веб-приложение) должен получить всплывающее окно с предупреждением, почти реальное время (мгновенно).
Однако, поскольку протокол HTTP не имеет состояния, я немного озадачен здесь. Я не знаю, как я могу это реализовать.
Одним из решений может быть использование JavaScript наряду с setInterval()
функцией для извлечения данных каждую секунду с сервера. Но это кажется мне немного грязным и непрофессиональным.
Ребята, у вас есть идея реализовать другое решение?
источник
Ответы:
Вы должны использовать своего рода ajax push (см. Comet ) для уведомления клиентов. Это может исключить необходимость опроса, вы в основном сохраняете установленное соединение открытым, что может использоваться для уведомления браузера о происходящих событиях. Однако это не работает со всеми браузерами. В таких случаях вы возвращаетесь к «длинному опросу».
источник
Я думаю, что именно по этой причине были созданы WebSockets . Если вам не нужна совместимость со старыми браузерами, вы можете использовать это вместо опроса. В любом случае, вы должны использовать опрос как запасной вариант.
Я не уверен, насколько стабильны спецификации / реализации в наши дни (это было не очень стабильно не так давно). Похоже, последняя спецификация реализована в Firefox 6 и Chromium 14.
источник