У меня есть сервер websocket на основе Jetty (v 9.3.6). Иногда я получаю скремблированное текстовое сообщение, так как оно объединено из 2 отдельных текстовых сообщений. Все сообщения, отправленные с клиента на сервер, и наоборот, находятся в формате JSON.Почему я получаю плохое/скремблированное/искаженное текстовое сообщение на websocket?
Например, у меня есть это 2 отделенных сообщения:
{"a":"b","c":"d"}
и
{"e":"f","g":"h"}
Иногда (не всегда) я получаю что-то вроде этого:
"b","c":"d"}
или
"b""g":"h"},"c":"d"}
Это либо неполное сообщение, либо комбинация из двух разных неполных сообщений.
Я заметил об этой ошибке, когда парсер JSON начал бросать ошибки синтаксического анализа строк.
ПРИМЕЧАНИЕ. Я попытался, но не смог имитировать это на локальном хосте. На производственном сервере, где у меня около 600-1k подключенных клиентов и около 100k + сообщений, отправленных в день, эти ошибки отображаются на 0,5-1% от общего числа отправленных сообщений.
Примечание 2: клиенты являются веб-браузеры (Chrome, Firefox и т.д.)
Hello @Joakim Erdfelt. Я думаю, что у меня есть разрешающая способность с дефлятом. Я обновился до 9.3.7, но теперь некоторые сообщения не отправляются клиентом (Chrome). Если я понижаюсь до 9.3.6, он работает. Сервер отправляет этот заголовок при подключении: Sec-WebSocket-Extensions: permessage-deflate Можете ли вы рассказать мне, как отключить разрешение-дефляцию? (Я использую встроенный сервер причала, поэтому, если это можно отключить от кода) –
nevermind. Я понимаю это. Я проверю, не произойдет ли эта ошибка в ближайшие 2-3 дня, и я обновлю сообщение. благодаря –