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

时间:2015-03-12 15:52:54

标签: java websocket glassfish wildfly-8

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

  3. 以下是用于建立网络套接字连接的代码段

  4. 问题:是否可以将websocket连接到另一个可部署的战争? 我跑的时候找不到任何异常,甚至没有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();
        }
    

1 个答案:

答案 0 :(得分:1)

是的,当我在删除凭证部分和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();
    }