Чтобы отправить определенный формат данных, например, фрейм webSocket, по TCP, вам просто нужно определить формат данных, чтобы читатель потока знал, где начинается и заканчивается фрейм, в зависимости от формата.Одним из типичных способов является отправка набора данных, который включает в себя формат заголовка фиксированного размера (известный заранее), который включает в себя длину всего кадра, а затем вы отправляете остаток кадра, который является этой длиной.Затем читатель может прочитать исходные данные фиксированного размера, прочитать их длину и узнать, сколько еще нужно прочитать, чтобы получить весь кадр.
что такое кадрирование в Websocket?
Вы можете прочитать обо всем фрейме webSocket здесь и посмотреть, как структурирован фрейм webSocket.
Frame format:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-------+-+-------------+-------------------------------+
|F|R|R|R| opcode|M| Payload len | Extended payload length |
|I|S|S|S| (4) |A| (7) | (16/64) |
|N|V|V|V| |S| | (if payload len==126/127) |
| |1|2|3| |K| | |
+-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
| Extended payload length continued, if payload len == 127 |
+ - - - - - - - - - - - - - - - +-------------------------------+
| |Masking-key, if MASK set to 1 |
+-------------------------------+-------------------------------+
| Masking-key (continued) | Payload Data |
+-------------------------------- - - - - - - - - - - - - - - - +
: Payload Data continued ... :
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
| Payload Data continued ... |
+---------------------------------------------------------------+
В чем преимущество использования сообщения вWebsocket?
Неясно, что вы спрашиваете с этим.Причины использования подключения через WebSocket включают в себя следующее:
- Возможность «перетаскивать» данные с сервера на клиент в любое время.
- Очень низкие издержки при отправке данных с любого изклиент к серверу или сервер к клиенту в любое время (намного меньше накладных расходов для повторяющихся пакетов, чем запрос http).
- Возможность иметь постоянное соединение, через которое вы можете делать много вещей, не прибегая ко всему httpформат запроса / ответа.