Реализация в реальном времени, веб-панель - PullRequest
1 голос
/ 05 февраля 2011

Я бы хотел реализовать панель инструментов , которая основана на веб-технологиях и имеет множество метрик, в которых один меняется каждую минуту, а другие меняются, как два раза в день.Через AJAX метрики должны обновляться как можно быстрее, если произошли изменения.Это означает, что одна и та же страница будет работать не менее нескольких часов.

Каков наиболее эффективный (с точки зрения технологии и реализации) способ решения этой проблемы в мире Java?

Ответы [ 2 ]

1 голос
/ 05 февраля 2011

Ну, здесь есть два очевидных варианта:

  • Comet, он же длинный опрос : запрос AJAX остается открытым сервером, пока не истечет время ожидания через несколько минутили пока не произойдет изменение, в зависимости от того, что произойдет первым.Недостатком этого является то, что обработка многих соединений может быть сложной;кроме всего прочего, вам не понадобится типичная модель «один поток на запрос, обрабатывающая его синхронно», которая является обычной.
  • Частые опросы со страницы AJAX, где каждый запрос возвращается быстро.Это, вероятно, будет проще реализовать, но менее эффективно с точки зрения сети (гораздо больше запросов) и будет менее быстрым;Например, вы могли бы отправлять запрос каждые 5 секунд, но если у вас много пользователей, вы получите большой трафик.

Лучшее решениебудет зависеть от того, сколько пользователей у вас есть.Если будет только несколько клиентов, вы, возможно, захотите пойти на «опрос каждые 5 секунд» - или даже возможно длинный опрос с потоком на запрос (хотя это, вероятно, будет немногосложнее в реализации).Если у вас много клиентов, я бы определенно пошел на длительный опрос, но вам нужно посмотреть, как отсоединить поток от соединения в вашей конкретной серверной среде.

0 голосов
/ 08 июля 2014

Я думаю, что время кометы прошло.Новый протокол Socket.IO набирает популярность.И я предлагаю использовать netty-socketio , он поддерживает протоколы как с длинным опросом, так и с протоколом веб-сокетов. javascript , ios , android Клиентские библиотеки также доступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...