如何在 wildfly 服务器内为 websockets 创建独立的 tyrus 客户端以在两个 wildfly 实例之间进行通信

how to create standalone tyrus client for websockets inside the wildfly server to communicate between two wildfly instances

  1. 正在尝试在两个不同的 wildfly 实例上的两个单独的可部署 war 之间建立 websocket 连接。
  2. 使用 tyrus-standalone-client 与另一个 war.

  3. 建立 websocket 连接
  4. 下面是用于建立网络套接字连接的片段

问题:是否可以将 websocket 连接到另一个可部署的 war? 当我 运行 甚至没有 101-404 错误(握手错误)时,我找不到任何异常。

    AuthConfig authConfig = AuthConfig.Builder.create().disableProvidedDigestAuth().build();
    Credentials credentials = new Credentials("root", "xyz");
    ClientManager client = ClientManager.createClient();
    client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
    client.getProperties().put(ClientProperties.CREDENTIALS, credentials);


    try (Session session = client.connectToServer(GovernorNodeWebSocketClient.class, new URI("ws://10.203.67.168:8080/xyz"))) {

        session.getBasicRemote().sendObject("xyz");
        System.out.println("4sendMessageToRemoteGovernor :: sent the message from device services to the remote governor"+responseObject.getJson());
    }
    catch (Exception e) {

        e.printStackTrace();
    }

是的,在删除凭据部分和 ClientManager.createClient();

之后,当我使用下面的代码片段时,这是可能的

因此,通过在您的 wildfly 实例上添加 tyrus 依赖项,我们可以在它们之间设置 websocket 连接

try  {
        System.out.println("sendMessageToRemoteGovernor :: "+message.getJson());
        WebSocketContainer container = ContainerProvider.getWebSocketContainer();
        session = container.connectToServer(XYZ.class, new URI("ws://localhost:8080/xyz/xyz"));
        session.getBasicRemote().sendObject(message);
    }
    catch (Exception e) {
        e.printStackTrace();
    }