websocket Java实现
WebSocket是一种协议,它允许在Web浏览器和Web服务器之间建立双向通信连接。在Java中实现WebSocket可以使用Java API for WebSocket,它是一个标准的Java API,用于开发WebSocket应用程序。
以下是一个简单的Java WebSocket服务器实现示例:
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
@ServerEndpoint("/websocket")
public class MyWebSocketServer {
@OnOpen
public void onOpen(Session session) {
System.out.println("WebSocket opened: " + session.getId());
}
@OnMessage
public void onMessage(String message, Session session) {
System.out.println("Received message: " + message);
try {
session.getBasicRemote().sendText("Received message: " + message);
} catch (IOException ex) {
ex.printStackTrace();
}
}
@OnClose
public void onClose(Session session) {
System.out.println("WebSocket closed: " + session.getId());
}
@OnError
public void onError(Throwable throwable) {
throwable.printStackTrace();
}
}
这个示例定义了一个WebSocket服务器,它使用@ServerEndpoint注解定义了一个WebSocket端点,它监听“/websocket”路径上的连接。onOpen()方法在连接打开时被调用,onMessage()方法在接收到消息时被调用,onClose()方法在连接关闭时被调用,onError()方法在发生错误时被调用。
在onMessage()方法中,我们获取基本远程会话对象并发送响应消息。
要运行此WebSocket服务器,您需要使用Java WebSocket API和WebSocket容器。以下是使用Tomcat WebSocket容器运行这个示例的步骤:
- 创建一个Maven项目并添加以下依赖项:
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-websocket</artifactId>
<version>9.0.43</version>
</dependency>
- 在web.xml文件中添加以下内容:
<display-name>MyWebSocketApp</display-name>
<context-param>
<param-name>org.apache.tomcat.websocket.textBufferSize</param-name>
<param-value>32768</param-value>
</context-param>
<servlet>
<servlet-name>MyWebSocketServlet</servlet-name>
<servlet-class>org.apache.tomcat.websocket.server.WsHttpUpgradeHandler</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyWebSocketServlet</servlet-name>
<url-pattern>/websocket/*</url-pattern>
</servlet-mapping>
-
在应用程序中部署MyWebSocketServer类。
-
启动Tomcat服务器并访问WebSocket端点:ws://localhost:8080/websocket。
当您向WebSocket服务器发送消息时,服务器将响应收到的消息并在控制台上输出它。

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