Re[5]: WebSocket
От: Mystic Artifact  
Дата: 28.02.20 12:48
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Можно конечно, но FF умирающий браузер и он слишком мало распространен что бы я мог игнорировать Chrome.

Цель не в том, что бы определить кто из них лучше, а в том, что бы выявить является ли обнаруженное поведение общим. Хотя, рискну предположить, то FF окажется слишком старомодным то бы наступить на эти грабли.

V>Пока по экспериментам получается так: если работаем в "расслабленном" режиме, то все ок. Если нагружаем WebSocket на приеме и JS код не успевает растаскивать пакеты, то внутренняя очередь которая дергает onmessage, как-то умудряется менять порядок вызовов. Сразу в onmessage callback стоит логирование, поэтому другую асинхронность я исключаю. Еще что заметил, что порядок меняется как у стека, типа: отправили 1,2,3,4,5,6...

V>приняли: 3,2,1,4,6,5....
В спеке говорится, что message должен становится в очередь задач (tasks), и что только microtasks в некоторых случаях могут переехать в другую очередь. Но очередь на то и очередь, что она упорядочена. Однако в реальной реализации спеки деталей много больше, так например я вполне допускаю (когда-то по крайней мере такое наблюдал), что внутренние меж-процессные сообщения вполне могут доставляться вне своего порядка. Но, это опять таки не про все сообщения, так что тут я не имею никакой информации конкретно на твой случай.
Если данный эффект действительно имеет место быть, то он должен быть вполне легко наблюдаем/повторяемым на одной машине через локалхост, иначе это больше похоже на какие-то странности сети (что тоже звучит дико).
Собственно дальше нужен только код повторения и либо пробовать повторять, репортить ошибку (или получить внятный ответ что это не ошибка), либо искать ошибку в своём коде, либо ещё где...

PS: Я согласен, что вопрос как-то не особо освящен, то ли я тоже слепой. Но код хрома колупать не буду, если не увижу такое поведение сам.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.