如何使用java websockets将消息从一个端点重定向到另一个端点(jsr 356)

时间:2015-09-17 06:25:30

标签: endpoint java-websocket jsr356

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

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

感谢

1 个答案:

答案 0 :(得分:2)

在@ServerEndpoint的 onmessage 方法上为 / wsDashboard 创建Java Web套接字客户端(" / wsServer")结束点并将其保留在用户属性中。如果您收到消息,只需将消息转发到/ 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-clients-in-java/