package com.fastbee.mqtt.codec; import io.netty.buffer.ByteBuf; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.MessageToMessageCodec; import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; import org.springframework.stereotype.Component; import java.util.List; /** * ws协议与MQTT协议编码转换 * @author gsb * @date 2022/9/15 14:35 */ @ChannelHandler.Sharable @Component public class WebSocketMqttCodec extends MessageToMessageCodec { @Override protected void encode(ChannelHandlerContext channelHandlerContext, ByteBuf byteBuf, List list) throws Exception { list.add(new BinaryWebSocketFrame(byteBuf.retain())); } @Override protected void decode(ChannelHandlerContext channelHandlerContext, BinaryWebSocketFrame binaryWebSocketFrame, List list) throws Exception { list.add(binaryWebSocketFrame.retain().content()); } }