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