package cc.mrbird.febs.common.websocket;
|
|
import io.netty.bootstrap.ServerBootstrap;
|
import io.netty.channel.ChannelFuture;
|
import io.netty.channel.EventLoopGroup;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.PostConstruct;
|
import javax.annotation.PreDestroy;
|
|
@Component
|
public class WebSocketServer {
|
|
@Value("${netty.websocket.port:8090}")
|
private int port;
|
|
@Autowired
|
private ServerBootstrap serverBootstrap;
|
|
@Autowired
|
private EventLoopGroup bossGroup;
|
|
@Autowired
|
private EventLoopGroup workerGroup;
|
|
private ChannelFuture channelFuture;
|
|
@PostConstruct
|
public void start() throws InterruptedException {
|
channelFuture = serverBootstrap.bind(port).sync();
|
System.out.println("Netty WebSocket服务器启动在端口:" + port);
|
}
|
|
@PreDestroy
|
public void stop() {
|
if (channelFuture != null) {
|
channelFuture.channel().close();
|
}
|
bossGroup.shutdownGracefully();
|
workerGroup.shutdownGracefully();
|
System.out.println("Netty WebSocket服务器已停止");
|
}
|
}
|