1

我正在做一个个人项目来了解java websockets。基本上,我的 HTML 客户端通过JSR 356 websockets向我的服务器发送消息。端点@ServerEndpoint("/wsServer")接收来自客户端的所有消息,我希望在另一个门户/端点@ServerEndpoint("/wsDashboard")中实时查看这些消息作为仪表板。

我会很感激任何想法、文档或代码片段,因为我真的不知道,我见过像 apache kafka 这样的解决方案,但我不确定这是否是我需要的。

谢谢

4

1 回答 1

2

在 @ServerEndpoint("/wsServer") 端点的onmessage方法 上为/wsDashboard创建 Java Web Socket 客户端,并将其保存在用户属性中。当您收到消息时,只需将消息转发到 /wsServer Web 套接字。

   @ServerEndpoint("/wsServer")
    public class MyWSServerEndPoint{
 @OnOpen
public void open( Session session) {
    // Open java client websocket connection to /wsDashboard and keep the object in 
        session.getUserProperties().put("wsDashboard ", websocket);
     }
    @OnMessage
     public void onMessage(String  message,Session session){
  //forwarding the message
       session.getUserProperties().get("wsDashboard ").getRemote().send(message);
 }
    @OnClose
    public void onClose(Session session){
     session.getUserProperties().get("wsDashboard ").close();
     }

 }

在此处创建客户端端点是很好的示例 http://www.hascode.com/2014/11/creating-different-websocket-chat-c​​lients-in-java/

于 2015-09-21T10:48:00.213 回答