LINUX.ORG.RU

Про web-socket

 


0

1

Здравствуйте.

Допустим я установил связь меду клиентом и сервером с помощью web-socket, всё хорошо, время от времени я обмениваюсь с сервером какими-то сообщениями. И вот в какой-то момент сервер послал мне сообщение и оно потерялось на каком-то промежуточном хопе.

Вопрос: что будет, я так и не узаю про это сообщение?


Ответ на: комментарий от stD

Разве клиент посылает серверу подтверждение о получении пакета?

Зависит от того, что ты называешь клиентом и сервером.

tailgunner ★★★★★
()
Ответ на: комментарий от Radjah

Пакет потеряться может только при пропадании линка

Но ведь при web-socket соединении клиент и сервер не проверяют соединение друг между другом.

Мало ли куда пакет затерялся, маршрутизатор на како-то хопе его не тужа завернул.

stD
() автор топика
Ответ на: комментарий от tailgunner

Зависит от того, что ты называешь клиентом и сервером.

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

stD
() автор топика
Ответ на: комментарий от stD

На сколько я понял, web-socket работает по типу UDP, плюнул пакет и забыл, только в обе стороны. Или я ошибаюсь?

stD
() автор топика
Ответ на: комментарий от stD

Зависит от того, что ты называешь клиентом и сервером.

Сервер это большой компьютер в сети

А. Так он посылает электрические импульсы, а не пакеты.

На сколько я понял, web-socket работает по типу UDP, плюнул пакет и забыл, только в обе стороны. Или я ошибаюсь?

Ты ошибаешься. И тебе сказали об этом в первом же постинге темы.

tailgunner ★★★★★
()
Ответ на: комментарий от stD

https://ru.wikipedia.org/wiki/WebSocket

WebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени.

Radjah ★★★★★
()
Ответ на: комментарий от alchemist

Сервер не получит ack для этого пакета, пошлёт ещё один, и он скорее всего дойдет

Дык что получается, сервер и клиент установили web-socket соединение и при последующем обмене данными они всё равно требуют друг у друга подтверждения запроса?

stD
() автор топика
Ответ на: комментарий от stD

Например, предположим, что у получателя есть 4096-байтовый буфер. Если отправитель передает 2048-байтовый сегмент, который успешно принимается получателем, то получатель подтверждает его получение. Однако при этом у получателя остается всего лишь 2048 байт свободного буферного пространства (пока приложение не заберет сколько-нибудь данных из буфера), о чем он и сообщает отправителю, указывая соответствующий размер окна (2048) и номер следующего ожидаемого байта

А то что в статье про веб-сокет нет ни слова про веб сокет это немного...странное утверждение =)

alchemist
()
Ответ на: комментарий от stD

Тогда спрошу по простому, когда установилась связь между клиентом и сервером по протоколу WebSocket, то, когда сервер посылает что-то клиенту, клиент отправляет обратно что-то типа «окей я получил твой запрос» ?

stD
() автор топика
Ответ на: комментарий от stD

Он отправляет подтверждение на каждый полученный TCP-пакет.

x3al ★★★★★
()
Ответ на: комментарий от stD

«Окей, я получил твои пакеты по ${номер_последнего_пакета} включительно. Жду следующие»

Вместо «жду следующие» может быть «подожди чуток, буфер заполнился, приложение тормозит, данные не забирает» - но это уже другая история)

alchemist
()
Последнее исправление: alchemist (всего исправлений: 1)
Ответ на: комментарий от alchemist

Спасибо большоё, я кажется разобрался. Получается что WebSocket, это такая штука, которая выравнивает в правах сервера и клиента.

stD
() автор топика
Ответ на: комментарий от Radjah

Или иными словами WebSocket, это обычное соединение без таймаута? Да? Ну то есть пока сам его не разорвёшь?

stD
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.