Здравствуйте, Mystic Artifact, Вы писали:
MA>Это вроде не нормальное поведение. Кто является отправителем сообщений? Может быть серверный фреймворк не даёт таких гарантий?
Все происходит в локальной сети. Отправляются пакеты со стороны браузера. На сервере (простейший С++, TCP сокет, свой маленький парсер WebSocket пакетов) они принимаются в точно таком же порядке как и отправлялись. Здесь все как и ожидалось никогда никаких переупорядочиваний нет. Пакеты это простейший json в котором присутствует номер пакета и этот номер отправляется обратно вместе с ответом. С++ сервер работает на одном сокете строго последовательно (принял-отдал, принял-отдал).
На приеме в браузере в обработчиках onmessage детектируется номера ответов. В спокойных условиях порядок также не меняется, а вот если нагрузить сеть близко к 100%, то номера ответов в обратных вызовах onmessage иногда начинают перемешиваться — меняется порядок.
P.S. Браузер Chrome 80.0.3987.116