import java.net.URI;
import javax.websocket.ClientEndpoint;
import javax.websocket.ContainerProvider;
import javax.websocket.OnMessage;
import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
import java.io.IOException;
// WebSocket客户端示例代码
@ClientEndpoint
public class WebSocketClient {
private Session userSession = null;
// 连接到WebSocket服务器的方法
public void connectToServer(URI endpointURI) {
try {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.connectToServer(this, endpointURI);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
// 处理从服务器接收到的消息的方法
@OnMessage
public void onMessage(String message) {
System.out.println("Received message: " + message);
}
// 关闭连接的方法
public void closeConnection() throws IOException {
if (userSession != null) {
userSession.close();
}
}
// 主方法,用于测试WebSocket客户端
public static void main(String[] args) {
WebSocketClient client = new WebSocketClient();
try {
client.connectToServer(new URI("ws://example.com/websocket"));
Thread.sleep(10000); // 等待10秒以接收消息
client.closeConnection();
} catch (Exception e) {
e.printStackTrace();
}
}
}
@ClientEndpoint:这是一个注解,用于标记类为WebSocket客户端端点。connectToServer(URI endpointURI):该方法用于连接到指定的WebSocket服务器。它使用ContainerProvider来获取WebSocket容器,并调用connectToServer方法进行连接。@OnMessage:这是一个注解,用于标记处理从服务器接收到的消息的方法。当服务器发送消息时,onMessage方法会被调用。closeConnection():该方法用于关闭与服务器的连接。main(String[] args):主方法用于测试WebSocket客户端。它创建一个WebSocketClient实例,连接到指定的WebSocket服务器,等待一段时间以接收消息,然后关闭连接。请根据实际情况修改ws://example.com/websocket为实际的WebSocket服务器地址。
上一篇:java 实体转map
下一篇:java获取uuid
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站