javascript — Вопросы о задержке связи через Websocket

3 мини-вопроса о подключениях через веб-сокет

  1. Когда клиент отправляет данные на сервер, возникает задержка. Когда сервер отправляет данные клиенту, существует ли задержка или она мгновенная?

  2. Если клиент отправляет данные на сервер ОЧЕНЬ БЫСТРО в определенной строке — скажем, [1, 2, 3], есть ли вероятность того, что из-за задержки или по другим причинам данные будут получены сервером в другой строке ? (например, [2, 1, 3])

  3. (То же, что вопрос 2, но когда сервер отправляет данные)

1

Решение

  1. Да, есть задержка. Это все еще соединение, и есть еще цепь для навигации. Задержка имеет значение только тогда, когда что-то меняется, и учитывая, что для сообщения клиенту требуется X времени, а клиенту — еще X мс, чтобы сделать что-либо с этим, вполне возможно, что состояние изменится в течение этих мс. Точно так же, как HTTP-запросы (WebSockets — примерно одно и то же) становятся «горячими», я считаю, что задержка уменьшится (при прочих равных условиях), но все равно будет существовать.

  2. Нет, WebSockets через TCP, поэтому они будут в порядке. Транспортировка UDP запускается и забывается, она не отправляет никаких уведомлений о получении и не регенерирует пакеты, используя информацию о времени, поэтому вы можете отправлять сообщения быстрее, но не можете делать предположений относительно получения, заказа или событий. Показы страниц были бы отличным примером того, где вас на самом деле не волнует, в каком порядке и, возможно, вас не слишком волнует, когда сервер получает такое сообщение, WebRTC может устанавливать UDP-соединения между JS и сервером, но стандарт все еще находится на стадии разработки. На данный момент WebSockets подключаются через обновление HTTP, то есть они являются TCP, где информация о заказе и подтверждении получения важна (все больше и больше сообщений отправляется туда и обратно).

  3. Тот же ответ! Все это происходит по TCP, поэтому вся поездка туда и обратно, но порядок гарантирован.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]