接上文
SpringBoot+Netty 结合物联网初步开发搭建 共享硬件+手机APP+电脑通信(1)
上文做到了设备连接上服务器端 服务器对报文进行解析。存取数据等操作。
我们这边手机APP采用了WebSocket协议 所以我们Netty服务器要加入WebSocket协议进行解析接收。
下文就是在Netty服务端接入WebSocket协议
编写WebSocket处理器类
这边先编写处理器类。刚开始编写的时候传入处理器的时候有点问题,后面发现websocket第一次连接发起请求的时候 是Http请求连接,后面发送的协议是webSocket协议 所以这边处理器开始做了解析转换
不多说先上代码
package com.qykfa.net;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelFutureListener;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.SimpleChannelInboundHandler;
import io.netty.channel.group.ChannelGroup;
import io.netty.channel.group.DefaultChannelGroup;
import io.netty.handler.codec.http.DefaultFullHttpResponse;
import io.netty.handler.codec.http.FullHttpRequest;
import io.netty.handler.codec.http.FullHttpResponse;
import io.netty.handler.codec.http.HttpUtil;
import io.netty.handler.codec.http.websocketx.*;
import io.netty.util.CharsetUtil;
import io.netty.util.concurrent.GlobalEventExecutor;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import static io.netty.handler.codec.http.HttpResponseStatus.BAD_REQUEST;
import static io.netty.handler.codec.http.HttpVersion.HTTP_1_1;
/**