Я хочу создать такое приложение:
Каков наиболее эффективный способ создания этого приложения реального времени?
Вспышка? Долгий опрос? Http Streaming? или что-то другое?
Спасибо ;)
Я хочу создать такое приложение:
Каков наиболее эффективный способ создания этого приложения реального времени?
Вспышка? Долгий опрос? Http Streaming? или что-то другое?
Спасибо ;)
На данный момент, вероятно, лучшим решением будет длинный опрос. Многие известные сайты уже давно внедрили опросы, включая Facebook, Google и eBay. Не у всех в браузерах установлен / включен Flash. В будущем веб-сокеты может облегчить нам работу.
Обновление: на момент написания этой статьи реализован WebSocket API в последней бета-версии WebKit (Chrome / Safari) и Firefox 4. Существует также общедоступная сборка моментальных снимков Opera , доступная для загрузки с реализацией API. Это означает, что тестирование API широко доступно. Для получения дополнительной информации см. этот ответ.
Все разные методы имеют разные плюсы и минусы, я не специалист по различиям, поэтому я рекомендую вам избегать выбора, избегать разработки и настройки, которые связаны с каждым подходом, избегать будущих изменений в доступных технологиях (например, появления веб-сокетов HTML5), используя библиотеку, которая абстрагирует используемый метод транспорта и выбирает лучший подход на основе возможностей клиента:
эта замечательная библиотека делает создание приложений в реальном времени невероятно простым! и существуют различные реализации на стороне сервера: Python (Tornado), Java, Google GO, Rack (Ruby), помимо основной реализации в Node.js (серверный JavaScript)
Я не думаю, что длинный опрос - самый эффективный способ использовать Comet. В любом случае он отправляет новый HTTP-запрос после получения ответа. Это стоит больше дополнительных HTTP-запросов, чем HTTP-потоковая передача.
Но длинный опрос может быть более надежным и простым в реализации, чем потоковая передача HTTP. Согласно этой статье в Google Code, потоковая передача HTTP может не работать, если промежуточный HTTP-прокси буферизует содержимое.
Интересно, что GMail не использует длинный опрос. С помощью сниффера Http становится ясно, что он использует потоковую передачу HTTP для Comet.