mkstring
V2EX  ›  问与答

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

  •  
  •   mkstring · Oct 11, 2018 · 1023 views
    This topic created in 2771 days ago, the information mentioned may be changed or developed.

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

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   981 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:11 · PVG 06:11 · LAX 15:11 · JFK 18:11
    ♥ Do have faith in what you're doing.