Websocket ClientEnpoint断开连接



我使用的是Wildfly 8.1,我实现了一个运行良好的Websocket服务器端点。

我可以毫无问题地推送和接收数据。(Javascript客户端)

现在我还需要一个java客户端来连接到另一个系统。

我的客户是这样的:

@ClientEndpoint
public class WebsocketClient {
    public WebsocketClient() {
    }
    @OnOpen
    public void onOpen(Session session) {
        try {
            System.out.println("Sending test message to endpoint: " + new Date());
            session.getBasicRemote().sendText(name);
        } catch (IOException ex) {
            log.error(ex.getMessage(), ex);
        }
    }
    @OnMessage
    public void onMessage(String message, Session session) {
        log.info("Received: " + message);
    }
    @OnClose
    public void onClose(Session session, CloseReason closeReason) {
        log.info("Disconnected: " + closeReason));
    }
}
try {
    WebSocketContainer container = ContainerProvider.getWebSocketContainer();
    String url = "ws://localhost:8080/test/wss/websocket_socket";
    container.connectToServer(BlockchainWebsocketClient.class, URI.create(url));
} catch (DeploymentException | IOException e) {
    e.printStackTrace();
}

连接正常,但我想知道如何断开连接?WebSocketContainer没有相应的方法。如何控制连接/断开连接/重新连接?

致以最良好的问候,m

container.connectToServer(...)

返回javax.websocket.Session实例,如果需要,可以使用它来调用session.close(),这将断开当前客户端会话与服务器端点的连接。

Reconnect不是JSR 356-针对WebSocket的Java API的一部分,所以你必须自己实现它,或者你自己实现一些专有功能(Tyrus-其他JSR 356实现-有一种叫做"ReconnectHandler"的东西,WildFly也可能有)。

相关内容

  • 没有找到相关文章

最新更新