Веб-сокетов и долго-деятельность в области масштабируемости по сравнению с протокола TCP/простота использования
Я пишу бэкэнд для мобильного веб-приложения, основанного на Java, и мне было интересно, насколько масштабируемость и простота использования идут, каковы плюсы и минусы, связанные с использованием WebSockets по сравнению с долгосрочными решениями, такими как comet. Другой вариант также будет выполнять мои собственные решения с использованием протокола TCP. Из того, что я читал, кажется, что вам нужно запускать решения для длительного опроса на выделенных серверах, поскольку они не работают хорошо в Tomcat/Jetty, когда вы начинаете иметь дело с большим количеством пользователей. WebSockets звучит так, как будто он масштабируется лучше. Есть ли какие-либо недостатки в работе с Websockets через Comet или я должен просто прибегнуть к своему собственному решению, используя TCP-соединения? Я ищу вариант, который использует наименьшее количество трафика.
1 ответ:
Я думаю, что это зависит от вашего использования и толерантности к изучению новых вещей, но, конечно, идти по пути использования WebSocket API для связи или даже SSE, было бы лучше, чем традиционное решение long-polling/Comet по многим причинам - одна из которых вы упомянули - масштабируемость, но также и для использования полосы пропускания и задержки. Важно также понимать, что WebSocket является для сети тем же, чем TCP является для рабочего стола, например сокетом. В настольном решении вы не обязательно кодируете против Протокол TCP используется клиентская библиотека поддерживает транспортный протокол, как топать или джаббер через TCP. Вы делаете то же самое при использовании WebSocket, выберите сервер для связи с сервером, например XMPP, и клиентскую библиотеку XMPP для связи с сервером через WebSockets.
Вы можете посмотреть наш пример этого здесь и у нас есть документы, которые вы можете прочитать здесь.
Следует обратить внимание на принятие браузером HTML5 WebSocket-в настоящее время в Chrome и Safari, а в ближайшее время в FF и Опера. Мы рассмотрели этот вопрос, но в случае, если вы планируете построить свой собственный сервер, вам придется создать резервное решение для старых браузеров.