我正在做个人项目来了解java websockets。基本上我的HTML客户端通过JSR 356 websockets向我的服务器发送消息。端点@ServerEndpoint("/wsServer")
接收来自客户端的所有消息,我希望将这些消息作为仪表板实时显示在另一个门户/端点@ServerEndpoint("/wsDashboard")
中。
我很感激任何想法,文档或一段代码,因为我真的不知道,我已经看过像apache kafka这样的解决方案,但我不确定这是否是我需要的。
感谢
答案 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/