websocket工具类
时间: 2023-07-03 21:15:53 浏览: 52
好的,我可以为您提供一个简单的 WebSocket 工具类。使用这个工具类,您可以方便地创建 WebSocket 连接、发送消息和接收消息。
```java
import java.net.URI;
import java.net.URISyntaxException;
import java.util.concurrent.*;
import org.java_websocket.client.*;
import org.java_websocket.handshake.*;
public class WebSocketClient {
private final String uri;
private final WebSocketAdapter adapter;
private final WebSocketClientImpl client;
private final ExecutorService executor = Executors.newSingleThreadExecutor();
public WebSocketClient(String uri, WebSocketAdapter adapter) throws URISyntaxException {
this.uri = uri;
this.adapter = adapter;
this.client = new WebSocketClientImpl(new URI(uri), adapter);
}
public void connect() {
executor.execute(() -> {
try {
client.connectBlocking();
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
});
}
public void disconnect() {
client.close();
executor.shutdownNow();
}
public void send(String message) {
client.send(message);
}
private static class WebSocketClientImpl extends WebSocketClient {
private final WebSocketAdapter adapter;
public WebSocketClientImpl(URI serverUri, WebSocketAdapter adapter) {
super(serverUri);
this.adapter = adapter;
}
@Override
public void onOpen(ServerHandshake handshake) {
adapter.onOpen(handshake);
}
@Override
public void onClose(int code, String reason, boolean remote) {
adapter.onClose(code, reason, remote);
}
@Override
public void onError(Exception ex) {
adapter.onError(ex);
}
@Override
public void onMessage(String message) {
adapter.onMessage(message);
}
}
}
```
使用方法:
1. 创建一个 WebSocketAdapter 的实现类,重写 onOpen、onClose、onError 和 onMessage 方法,以处理 WebSocket 的事件。
```java
import org.java_websocket.handshake.ServerHandshake;
public class MyWebSocketAdapter extends WebSocketAdapter {
@Override
public void onOpen(ServerHandshake handshake) {
// 连接建立时的处理逻辑
}
@Override
public void onClose(int code, String reason, boolean remote) {
// 连接关闭时的处理逻辑
}
@Override
public void onError(Exception ex) {
// 出错时的处理逻辑
}
@Override
public void onMessage(String message) {
// 收到消息时的处理逻辑
}
}
```
2. 创建 WebSocketClient 对象,并调用 connect 方法连接 WebSocket。
```java
WebSocketClient client = new WebSocketClient("ws://example.com", new MyWebSocketAdapter());
client.connect();
```
3. 发送消息。
```java
client.send("Hello, WebSocket!");
```
4. 断开连接。
```java
client.disconnect();
```