StringEncoder разбивает чрезвычайно длинную строку случайным образом? - PullRequest
1 голос
/ 26 октября 2019

Я пытаюсь отправить некоторую строку JSON с открытым ключом RCS в GSON. Всякий раз, когда строка передается клиенту, она разделяется.

В настоящее время у меня есть только эти кодировщики (в основном это строковые кодировщики с некоторыми дополнительными функциями)

Требуются ли какие-либо дополнительные кодировщики или декодерычто объединит строку или мне нужно кодировать ее вручную? Если я сделаю, какие-либо объяснения о том, как это сделать?

Пример того, как будет выглядеть строка JSON, выглядит следующим образом: https://pastebin.com/UkDGKHya Открытый ключ уникален и генерируется при каждой отправке пакета, хотя он отправляется только один раз для регистрации клиента.

Сервер:

                        ch.pipeline().addLast("stringDecoder", new EncryptedGSONObjectDecoder(CharsetUtil.UTF_8, keyFinder));

                        ch.pipeline().addLast("stringEncoder", new EncryptedGSONObjectEncoder(CharsetUtil.UTF_8, keyFinder));

                        ch.pipeline().addLast(processingHandler);

Клиент:

                    ch.pipeline().addLast("readTimeoutHandler", new ReadTimeoutHandler(15));

                    ch.pipeline().addLast("stringDecoder",new EncryptedGSONObjectDecoder(CharsetUtil.UTF_8, Client.this));

                    ch.pipeline().addLast("stringEncoder", new EncryptedGSONObjectEncoder(CharsetUtil.UTF_8, Client.this));

                    ch.pipeline().addLast(clientHandler);

1 Ответ

1 голос
/ 26 октября 2019

Мне просто нужно было добавить LineBasedFrameDecoder и добавить "\ n \ r" в конце строки при кодировании

...