V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mkstring
V2EX  ›  问与答

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

  •  
  •   mkstring · 2018-10-11 19:39:53 +08:00 · 763 次点击
    这是一个创建于 2042 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求是,用户可以自定义 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 协议标签

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3302 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 12:53 · PVG 20:53 · LAX 05:53 · JFK 08:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.