Делает Сокет.io гарантирует, что транслируемые события получены в порядке клиентской стороны?

есть ли какой-то механизм упорядочения в сокете.io, что гарантирует, что события получены в порядке клиентами. Exemple: если сервер отправляет evt1 клиенту A, сервер передает Evt2 всем клиентам. thud клиент A получает Evt1, затем Evt2 и только в этом порядке. Я немного ленив, читая код, и не могу найти ответ в сети. Я предполагаю, что нет, и если это так, как бы вы его реализовали или существуют ли существующие решения?

2 ответов


нет, вы должны сделать это на уровне приложения, Если вам нужно сделать что. Интернет не гарантирует, что два разных пакета будут проходить один и тот же маршрут, поэтому время может отличаться. Возможно, добавьте метку времени к каждому сообщению, чтобы вы могли Сортировать по этой метке времени, чтобы держать вещи в порядке.


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

при использовании сокета.io с WebSockets, гарантирован, что будет поддержан порядок пакетов.

Это старый пост, но стоит отметить, что сокет.io over WebSockets на самом деле заказ события гарантии поддержан. Это потому, что сам TCP, который является базовой технологией для WebSockets & HTTP гарантирует пакет приказывать быть поддержанным. Однако Сокет.io также поддерживает несколько других протоколов, которые не гарантия порядка.

было опубликовано несколько вопросов по этому вопросу, подтверждающих этот факт: