java websocket 设置无限重新连接
时间: 2023-09-21 13:08:12 浏览: 82
websocket重连
可以使用以下代码实现无限重新连接:
```java
public class WebSocketClient {
private final String url;
private Session session;
public WebSocketClient(String url) {
this.url = url;
}
public void connect() {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
RetryTask retryTask = new RetryTask(container);
container.connectToServer(new Endpoint() {
@Override
public void onOpen(Session session, EndpointConfig config) {
WebSocketClient.this.session = session;
retryTask.cancel();
}
}, URI.create(url));
}
public void sendMessage(String message) throws IOException {
session.getBasicRemote().sendText(message);
}
private static class RetryTask extends TimerTask {
private final WebSocketContainer container;
private RetryTask(WebSocketContainer container) {
this.container = container;
new Timer().schedule(this, 0, 1000);
}
@Override
public void run() {
try {
container.connectToServer(new Endpoint() {}, URI.create(url));
} catch (Exception e) {
// ignore
}
}
}
}
```
在 `connect()` 方法中,使用 `WebSocketContainer` 来连接到 WebSocket 服务器。如果连接失败,则使用 `RetryTask` 来无限重新连接,直到连接成功为止。在 `sendMessage()` 方法中,通过 `Session` 发送消息。
这样就可以实现 WebSocket 的无限重新连接了。
阅读全文