使用Netty处理WebSocket请求
前言
前面我根据网上的一些资料,整理了一个使用Netty处理WebSocket的案例代码出来SpringBoot整合Netty处理WebSocket(支持url参数),后来觉得那份代码不是最优解,因此,我决定重新写了以下代码,更好的处理URL和请求头。
依赖
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
<version>4.1.51.Final</version>
</dependency>
服务端代码
@Slf4j
public class WebSocketServer implements Closeable {
private EventLoopGroup bossGroup;
private EventLoopGroup workGroup;
private ChannelFuture future;
public WebSocketServer(int port, String websocketPath) throws InterruptedException {
log.info("Netty WebSocket server starting...");
try {
this.bossGroup = new NioEventLoopGroup(2);
this.workGroup = new NioEventLoopGroup(2);
ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.group(bossGroup, workGroup)
.option(ChannelOption.SO_BACKLOG, 1 << 10)
.channel(NioServerSocketChannel.class)
.localAddress(port)
.childHandler(new Chann