我有两个WebSocket服务器可以很好地与客户端通信。它们在两台独立的机器上,用Java实现,并在WildFly8 web服务器中运行。我现在需要他们做的是相互沟通。这意味着:客户端向服务器1发送消息,服务器1向服务器2发送消息,接收到应答并返回给客户端。
服务器在OpenShift的不同应用程序上运行,我需要它们使用websockets。或其他类型的通信,但我还没有设法找到任何实际工作到目前为止(RMI或正常的套接字连接将不工作)。
我基本上尝试做的是在第一个服务器的onMessage方法中使用来自客户端的相同代码。像这样:
@OnMessage
public void message(Session session, String msg){
...
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
Session NewSession = container.connectToServer(Client.class, URI.create(URL));
NewSession.getBasicRemote().sendText("Routed :" + input);
...
}
但是,服务器没有连接到另一个服务器,我不知道为什么。有什么建议吗?
谢谢!
将connectToServer放入try {} catch中,可能会得到错误。日志。
我正在努力做完全相同的事情(2 websocket服务器,Wildfly 8),我得到一个权限拒绝错误。请看我的帖子:
https://stackoverflow.com/questions/30966757/java-server-to-server-communication-with-websockets-permission-denied