Пропущенные сообщения и поступающие позже

Я новичок в Websocket и много об этом читал. Я хочу знать, возможно ли, что одно сообщение не приходит, а потом приходят сообщения? это происходит в сокете io, но не в tcp-ip.

1 ответ

TCP гарантирует порядок кадров TCP, отправляемых из одного стека TCP в другой. Это не означает, что порядок сообщений гарантирован выше по стеку. WebSocket, построенный на TCP, не гарантирует порядок кадров WS. За это отвечает протокол приложения, например, pub/sub, xmpp, db и т. Д. Также получателю необходимо проверить, является ли кадр WS единственным в "сообщении" или есть несколько кадров WS, которые содержат " сообщение".

Кстати, я использую кавычки вокруг "сообщения", потому что WebSocket на самом деле не является системой обмена сообщениями высокого уровня, такой как ActiveMQ, JMS, AMQP и т. Д. Многие люди свободно говорят "сообщение", когда говорят о WS, когда они действительно имеют в виду " данные в фрейме или наборе фреймов WebSocket ". WebSocket - это транспорт низкого уровня. Это как "TCP для сети" (не физически, а абстрактно).

Большинство разработчиков приложений не должны использовать API WebSocket, так же как большинство разработчиков приложений не должны использовать сырой TCP API. Это выглядит просто, но вам нужно разработать много кода поверх WS, чтобы получить семантику приложения, необходимую для большинства приложений.

Я предлагаю вам использовать API более высокого уровня, который использует WS под капотом. Много возможностей: ActiveMQ, MQTT, NodeJS, Kaazing (компания, в которой я работаю) и другие.

Другие вопросы по тегам