Подтвердить что ты не робот

Недостатки websockets

Я хотел бы знать, какие ограничения существуют в использовании веб-карт.

Websockets - это просто.. мощный. Я не могу себе представить, что это без проблем.

Скажите, каково количество пользователей, которые могут одновременно подключаться к серверу (если я создаю игру, и пользователи подключатся к игре через WebSockets, что ограничит количество пользователей, которые смогут подключиться в любой момент времени?)

Также верно, что при каждом дополнительном соединении качество соединений (скорость и прочее подобное) уменьшатся?

4b9b3361

Ответ 1

Преимущества и недостатки, конечно, будут зависеть от конкретного варианта использования, но я попытаюсь указать некоторые различия между WebSocket и HTTP.

WebSocket более сложный, чем HTTP. Вы можете установить HTTP-соединение с telnet-клиентом, но вы, вероятно, не можете сделать то же самое с WS. Даже если вы проигнорировали требования к рукопожатию (в том числе использование хэш-функции SHA1), вы не сможете должным образом маскировать и кадрировать отправляемые данные, а сервер будет закрывать соединение.

Как сказал Уве, соединения WebSocket должны быть более постоянными, чем HTTP-соединения. Если вы хотите получать обновления каждые 30 минут, вам нужно пойти с HTTP. Если вы хотите получать обновления каждую секунду, WebSocket может быть лучшим вариантом, поскольку создание HTTP-соединения занимает много времени.

Чтобы установить HTTP-соединение, сначала необходимо установить TCP-соединение (SYN, SYN/ACK, ACK), затем отправить запрос GET с довольно большим заголовком, а затем, наконец, получить ответ сервера (вместе с другим большим заголовком).

С открытым WebSocket вы просто получаете ответ (без запроса), и он поставляется с гораздо меньшим заголовком: из двух байтов для небольших кадров, до 10 байтов для смехотворно больших кадров (в диапазоне гигабайт).

Вам нужно взвесить две издержки (поддерживая соединение открытым или установить новое соединение), чтобы решить между двумя протоколами.

Примечание: этот ответ основан на текущей черновике протокола (draft-ietf-hybi-thewebsocketprotocol-09). WebSocket быстро развивается, многие реализации все еще основаны на более старых черновиках, и некоторые детали могут измениться до того, как они будут завершены.

Ответ 2

Из того, что я читал, похоже, это связано с HTTP Server Push, который я читал, что его обычно не рекомендуется использовать, поскольку он создает множество подключений на сервере.

Если мне нужно будет выбирать, я, вероятно, всегда буду разрабатывать механизм опроса клиентов.