以下是一个完整的示例,演示如何在 Tomcat 中使用嵌入式 WebSocket。\n\n首先,您需要在 pom.xml 文件中添加 tomcat-embed-websocket 依赖项:\n\nxml\n<dependencies>\n <dependency>\n <groupId>org.apache.tomcat.embed</groupId>\n <artifactId>tomcat-embed-websocket</artifactId>\n <version>9.0.27</version>\n </dependency>\n</dependencies>\n\n\n接下来,您可以创建一个名为 WebSocketServer 的类,该类将作为 WebSocket 服务器运行:\n\njava\nimport javax.websocket.OnClose;\nimport javax.websocket.OnError;\nimport javax.websocket.OnMessage;\nimport javax.websocket.OnOpen;\nimport javax.websocket.Session;\nimport javax.websocket.server.ServerEndpoint;\n\n@ServerEndpoint("/websocket")\npublic class WebSocketServer {\n\n @OnOpen\n public void onOpen(Session session) {\n System.out.println("WebSocket opened: " + session.getId());\n }\n\n @OnMessage\n public void onMessage(String message, Session session) {\n System.out.println("WebSocket received message: " + message);\n try {\n session.getBasicRemote().sendText("Server received message: " + message);\n } catch (Exception e) {\n e.printStackTrace();\n }\n }\n\n @OnClose\n public void onClose(Session session) {\n System.out.println("WebSocket closed: " + session.getId());\n }\n\n @OnError\n public void onError(Session session, Throwable error) {\n System.out.println("WebSocket error: " + session.getId());\n error.printStackTrace();\n }\n}\n\n\n在上面的代码中,我们使用 @ServerEndpoint 注解将该类标记为 WebSocket 服务器,并将其绑定到路径“/websocket”。\n\n最后,您可以创建一个名为 Main 的类,该类将启动 Tomcat 服务器并将 WebSocketServer 绑定到指定的地址:\n\njava\nimport org.apache.catalina.Context;\nimport org.apache.catalina.startup.Tomcat;\n\nimport java.io.File;\n\npublic class Main {\n\n public static void main(String[] args) throws Exception {\n Tomcat tomcat = new Tomcat();\n tomcat.setPort(8080);\n\n String contextPath = "/";\n String docBase = new File(".").getAbsolutePath();\n\n Context context = tomcat.addContext(contextPath, docBase);\n\n Tomcat.addServlet(context, "WebSocketServer", new WebSocketServer());\n context.addServletMappingDecoded("/websocket", "WebSocketServer");\n\n tomcat.start();\n tomcat.getServer().await();\n }\n}\n\n\n在上面的代码中,我们首先创建了一个 Tomcat 实例,并设置其端口号为 8080。然后,我们指定了上下文路径和文档基础路径。接下来,我们将 WebSocketServer 添加到 Tomcat 的上下文中,并将其映射到路径“/websocket”。\n\n最后,我们启动 Tomcat 服务器并等待服务器停止。\n\n您可以使用 Maven 编译和运行该示例:\n\n\nmvn compile\nmvn exec:java -Dexec.mainClass="Main"\n\n\n现在,您可以通过访问 http://localhost:8080/websocket 来测试 WebSocket 服务器。

Tomcat 嵌入式 WebSocket:完整示例与步骤

原文地址: https://www.cveoy.top/t/topic/pZtJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录