我正在尝试使用 GSON 发送一些带有 RCS 公钥的 JSON 字符串。每当字符串传输到客户端时,它就会被分割。
目前我只有这些编码器(它们基本上是带有一些额外功能的字符串编码器)
我是否需要任何额外的编码器或解码器将字符串连接在一起,还是需要手动编码?如果我这样做,有关于如何做的任何解释吗?
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);
最佳答案
我只需添加一个 LineBasedFrameDecoder 并在编码时在字符串末尾添加“\n\r”
关于java - StringEncoder是否随机分割一个极长的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58567634/