Является ли «длинный опрос» наиболее эффективным способом создания веб-приложения реального времени?
-
19-09-2019 - |
Вопрос
Я хочу создать такое приложение:
Каков наиболее эффективный способ создания приложения реального времени?
Вспышка?Долгий опрос?HTTP-стриминг?или что-то другое?
Спасибо ;)
Решение
На данный момент длинный опрос, вероятно, является лучшим решением.Многие известные сайты уже давно используют опросы, включая Facebook, Google и eBay.Не у всех в браузерах установлен/включен Flash.В будущем Веб-сокеты возможно, нам удастся сделать это проще.
Обновлять: На момент написания этой статьи 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-сниффера видно, что Comet использует потоковую передачу HTTP.