作者:蓝月亮乐悠悠 | 来源:互联网 | 2022-12-07 15:42
我使用Spring的WebSocketConnectionManager来处理WebSocket。有时连接关闭,我必须重新连接。但是我没有找到合适的解决方案。我可以使用WebSocketConnectionManager进行还原(重新连接)会话吗?在我看到的资源中,该连接通过以下代码建立:
@Override
protected void openConnection() {
if (logger.isInfoEnabled()) {
logger.info("Connecting to WebSocket at " + getUri());
}
ListenableFuture future =
this.client.doHandshake(this.webSocketHandler, this.headers, getUri());
future.addCallback(new ListenableFutureCallback() {
@Override
public void onSuccess(@Nullable WebSocketSession result) {
webSocketSession = result;
logger.info("Successfully connected");
}
@Override
public void onFailure(Throwable ex) {
logger.error("Failed to connect", ex);
}
});
}
当我的Spring Boot应用程序启动时,我正在使用此管理器:
WebSocketConnectionManager cOnnectionManager= new WebSocketConnectionManager(
new StandardWebSocketClient(), webSocketHandler, "wss://localhost:8080/ws/");
connectionManager.start();
但是当连接关闭时我该怎么办?我试图从openConnection()复制一段代码,并将其用于直接在webSocketHandler中更新会话,并且它可以工作。但是,这似乎是肮脏的解决方法。
有人知道如何正确执行吗?谢谢。