Pārlūkot izejas kodu

feat(websocket): 实现WebSocket服务器启动功能

- 添加WebSocket服务器类,支持指定端口启动
- 集成Netty框架实现网络通信
- 配置Boss和Worker事件循环组- 实现服务器启动和优雅关闭逻辑
- 添加服务器启动成功日志输出
- 集成聊天服务处理WebSocket消息
nahida 8 mēneši atpakaļ
vecāks
revīzija
0f0fa5fffb

+ 37 - 0
zksy-ws/src/main/java/com/zksy/server/WebSocketServer.java

@@ -0,0 +1,37 @@
+package com.zksy.server;
+
+import com.zksy.service.ChatService;
+import io.netty.bootstrap.ServerBootstrap;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.EventLoopGroup;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.nio.NioServerSocketChannel;
+
+public class WebSocketServer {
+    private final int port;
+    private final ChatService chatService;
+
+    public WebSocketServer(int port, ChatService chatService) {
+        this.port = port;
+        this.chatService = chatService;
+    }
+
+    public void start() throws InterruptedException {
+        EventLoopGroup boss = new NioEventLoopGroup(1);
+        EventLoopGroup worker = new NioEventLoopGroup();
+
+        try {
+            ServerBootstrap bootstrap = new ServerBootstrap();
+            bootstrap.group(boss, worker)
+                     .channel(NioServerSocketChannel.class)
+                     .childHandler(new WebSocketServerInitializer(chatService));
+
+            ChannelFuture future = bootstrap.bind(port).sync();
+            System.out.println("WebSocket 服务器已启动,端口:" + port);
+            future.channel().closeFuture().sync();
+        } finally {
+            boss.shutdownGracefully();
+            worker.shutdownGracefully();
+        }
+    }
+}