【发布时间】:2016-07-15 11:07:40
【问题描述】:
我想通过 netty 发送字符串消息。为此,我需要使用 StringDecoder 和编码器,如下所示:
ch.pipeline().addLast("frameDecoder", new LineBasedFrameDecoder(**maxLength**));
ch.pipeline().addLast("stringDecoder", new StringDecoder(CharsetUtil.UTF_8));
// Encoder
ch.pipeline().addLast("stringEncoder", new StringEncoder(CharsetUtil.UTF_8));
这很好,但唯一让我对 maxLengh 感到失望的部分?!我不知道我的字符串消息的最大大小?为什么它需要它,它可以通过分隔符找到字符串或 \r\n 为什么它需要 maxLength?
有没有什么方法可以在不指定长度的情况下发送字符串消息?顺便说一句,如果我将限制设置为很大,并且只使用一小部分,我会丢失任何东西吗?我在浪费空间吗?
我正在编写一个分布式键值存储,我系统中的服务器相互复制新的写入,我不知道一个键的值有多大。
谢谢
【问题讨论】:
-
当我使用传统的服务器/客户端架构时,我曾经很容易使用 println() 和 readLine() 发送无限行。我希望我也可以使用 netty 来做到这一点。