Как наиболее быстро получать небольшие, очень частые обновления с сервера? - PullRequest
1 голос
/ 15 апреля 2011

Я работаю над дизайном веб-приложения, которое будет использовать AJAX для связи с сервером на встроенном устройстве. Но для одной функции клиент должен будет получать очень частые обновления (> 10 в секунду), как можно ближе к реальному времени, в течение длительного периода времени. Между тем типичные запросы AJAX должны время от времени обрабатываться.

Некоторые соображения, уникальные для этого проекта:
Эти данные будут очень маленькими, вероятно, не более одного числового значения.
К серверу одновременно может быть подключен только 1 клиент, поэтому масштабирование не является проблемой.
Клиент и сервер будут находиться в одной локальной сети, поэтому соединение будет быстрым и надежным.
Приложение будет разработано для устройств Android, поэтому мы можем воспользоваться всеми функциями браузера, специфичными для платформы.
Скорее всего, бэкэнд будет реализован в Python с использованием WSGI на Apache или lighttpd, но этот вопрос все еще открыт для обсуждения.

Я изучаю методы кометы , включая длинный опрос XHL и скрытый iframe , но я довольно новичок в веб-разработке и не знаю какого рода производительность мы можем ожидать. На сервере не должно возникнуть проблем с подготовкой данных, достаточно просто как можно быстрее передать их клиенту. Является ли 10 обновлений в секунду необоснованным ожиданием для любого из методов Comet или даже регулярного опроса AJAX? Или вы бы предложили другой метод?

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

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011

Вы можете рассмотреть WebSockets. Таким образом, вам не придется опрашивать, вы будете получать данные непосредственно с вашего сервера. Я не уверен, какие реализации сервера доступны на данный момент, так как это все еще довольно новая технология, но я нашел сообщение в блоге о библиотеке для WebSockets на Android:

http://anismiles.wordpress.com/2011/02/03/websocket-support-in-android%E2%80%99s-phonegap-apps/

1 голос
/ 18 апреля 2011

Для бэкэнда Python вы можете посмотреть Twisted .Я бы также порекомендовал подход WebSocket, но в случае его неудачи, и, поскольку вы, кажется, сосредоточены на клиенте браузера, я бы по умолчанию использовал потоковую передачу HTTP, а не опросы или длинные опросы.Этот плагин jQuery реализует потоковый клиент Ajax http и заявляет, что специально поддерживает Twisted.

0 голосов
/ 15 апреля 2011

Я не уверен, будет ли это вообще полезно, но вы можете попробовать стиль кометы ajax

http://ajaxian.com/archives/comet-a-new-approach-to-ajax-applications

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