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服务器已停止"); } }