WebSockets против Long-Polling против TCP-масштабируемости / простоты использования - PullRequest
4 голосов
/ 29 июля 2010

Я пишу бэкэнд для мобильного веб-приложения, основанного на Java, и мне было интересно, насколько масштабируемость и простота использования идут в пользу плюсов и минусов, связанных с использованием WebSockets, по сравнению с решениями Long-Polling, такими как comet.Другой вариант также будет реализовывать мое собственное решение с использованием TCP.Из того, что я прочитал, кажется, что вам нужно запускать решения с длительным опросом на выделенных серверах, поскольку они плохо работают в Tomcat / Jetty, когда вы начинаете работать с большим количеством пользователей.Похоже, WebSockets лучше масштабируется.Есть ли какие-либо недостатки в использовании Websockets вместо Comet, или я должен просто прибегнуть к собственному решению, использующему соединения TCP?Я ищу вариант, который использует наименьший трафик.

1 Ответ

5 голосов
/ 30 июля 2010

Полагаю, это зависит от вашего сценария использования и терпимости к изучению новых вещей, но, конечно же, переход по пути использования API-интерфейсов WebSocket для связи или даже SSE по многим причинам будет лучше, чем традиционное решение с длинным опросом / Comet. - тот, который вы упомянули - масштабируемость, а также использование полосы пропускания и задержки. Важно также понимать, что WebSocket для Web - это то же самое, что TCP для рабочего стола, например розетка. В настольном решении вы не обязательно программируете против TCP, вы используете клиентскую библиотеку, поддерживающую транспортный протокол, такой как STOMP или XMPP через TCP. Вы делаете то же самое при использовании WebSocket, выбираете сервер для связи, например, с. XMPP-сервер и клиентская библиотека XMPP для связи с сервером через WebSockets.

Вы можете увидеть наш пример этого здесь , и у нас есть документов, которые вы можете прочитать здесь .

Следует обратить внимание на принятие браузером HTML5 WebSocket - в настоящее время в Chrome и Safari, а также в скором времени в FF и Opera. Мы обратились к этому, но если вы планируете создать свой собственный сервер, вам придется создать запасное решение для старых браузеров.

...