Я получил странную ошибку при использовании netty (с верблюдом), мы используем LengthFieldBasedFrameDecoder для связи, клиент - это программа сокетов от стороннего производителя, мы используем netty (компонент верблюда-нетти) на стороне сервера.
иногда два сообщения «сливались» в одно, и, следовательно, предстоящие данные были неверными.
Например:
клиент отправляет два сообщения:
[10]ААААААААААААААА и [10]БББББББББББББ
где [10] — длина байтов, а AAAAAAAAAA — данные.
но на сервере мы получили [10]AAAAAA[10]BBBBBBBBBBBBBBBBAAAAAAAAAAAA
кажется, что первое сообщение было разделено вторым, поэтому декодер интерпретировал данные как:
[10]АААААА[10]БББББББ
и
ББББББАААААААААААААААААААААА................................ ..
так что первое сообщение имеет правильную длину, но неверные данные, а второе сообщение имеет неправильную длину «BB», и получают гораздо более длинный пакет данных.
надеюсь понятно описал, кто-нибудь встречал такое раньше?