Является ли "длительный опрос" наиболее эффективным способом создания веб-приложения в реальном времени? - PullRequest
12 голосов
/ 14 марта 2010

Я хочу создать приложение, подобное этому:

http://collabedit.com/

Какой самый эффективный способ создания приложения в реальном времени?

Flash? Длинный опрос? Http Streaming? или что-то еще?

Спасибо;)

Ответы [ 3 ]

14 голосов
/ 14 марта 2010

На данный момент, длинный опрос, вероятно, является лучшим решением. Многие известные сайты имеют долгую реализацию опросов, включая Facebook, Google и eBay. Не у всех Flash установлен / включен в своих браузерах. В будущем веб-сокеты могут сделать это проще для нас.

Обновление: На момент написания этой статьи API WebSocket реализован в последней бета-версии WebKit (Chrome / Safari) и Firefox 4. Существует также общедоступная сборка снимков Opera , доступная для загрузки с реализацией API. Это означает, что тестирование API широко доступно. Для получения дополнительной информации см. этот ответ .

4 голосов
/ 03 мая 2011

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

http://socket.io/

эта замечательная библиотека делает создание приложений в реальном времени удивительно простым! и существуют различные реализации на стороне сервера: Python (Tornado), Java, Google GO, Rack (Ruby), помимо основной реализации в Node.js (JavaScript на стороне сервера)

1 голос
/ 22 марта 2010

Я не думаю, что длинные опросы - самый эффективный способ сделать Comet. В любом случае, он отправляет новый HTTP-запрос после получения ответа. Это стоило больше дополнительных HTTP-запросов, чем потоковое HTTP.

Но длинный опрос может быть более надежным и простым в реализации, чем потоковая передача HTTP. Согласно этой статье в Google Code , потоковая передача HTTP может не работать, если промежуточный прокси-сервер HTTP буферизует содержимое.

Интересно, что GMail не использует длинные опросы. С помощью Http-сниффера становится ясно, что он использует потоковую передачу HTTP для Comet.

...