package cn.iocoder.yudao.module.iot.gateway.protocol.tcp.codec; import io.vertx.core.Handler; import io.vertx.core.buffer.Buffer; import io.vertx.core.parsetools.RecordParser; /** * IoT TCP 帧编解码器接口 *
* 用于解决 TCP 粘包/拆包问题,提供解码(拆包)和编码(加帧)能力 * * @author 芋道源码 */ public interface IotTcpFrameCodec { /** * 获取编解码器类型 * * @return 编解码器类型 */ IotTcpCodecTypeEnum getType(); /** * 创建解码器(RecordParser) *
* 每个连接调用一次,返回的 parser 需绑定到 socket.handler()
*
* @param handler 消息处理器,当收到完整的消息帧后回调
* @return RecordParser 实例
*/
RecordParser createDecodeParser(Handler
* 根据不同的编解码类型添加帧头/分隔符
*
* @param data 原始数据
* @return 编码后的数据(带帧头/分隔符)
*/
Buffer encode(byte[] data);
}