netty 如何配置达到 TCP 动态分包?

2018-10-11 19:39:53 +08:00
 mkstring

需求是,用户可以自定义 TCP 数据的格式,格式需要定义开头、结尾、分隔符。

用户在页面上生成一个设备 id 号,并定义这个设备使用的数据格式,比如 #1.1,1.2# 表示以 “#” 开头,第一个数据是 1.1,第二个数据是 1.2,以逗号分隔数据,以“#”作为结尾。

这个过程势必需要将这个设备 id 和数据格式存入数据库,当这个设备的数据上来之后,需要从数据库中读取它的规则,并按规则解析数据。

目前,我在 netty 中可以使用如下的方式来分隔数据,但这个是在 netty 初始化过程中就执行了,请问这个如何做成动态的呢?非常感谢您的回答!

  
    ByteBuf delimiter = Unpooled.copiedBuffer("#".getBytes());
    pipeline.addLast("framer", new DelimiterBasedFrameDecoder(1024, delimiter));

参考的实现:tlink 平台的 TCP 协议标签

764 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/496825

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX