Как перенаправить сообщения из одной конечной точки в другую, используя java websockets (jsr 356)
Я делаю личный проект, чтобы узнать о Java Websockets. В основном мои клиенты HTML отправляют сообщения на мой сервер через веб-сокеты JSR 356. Конечная точка @ServerEndpoint("/wsServer")
получает все сообщения от клиентов, и я хотел бы видеть эти сообщения в другом портале / конечной точке @ServerEndpoint("/wsDashboard")
в качестве приборной панели в режиме реального времени.
Я буду признателен за любую идею, документацию или фрагмент кода для начала, поскольку я действительно не знаю, я видел такие решения, как apache kafka, но я не уверен, что это то, что мне нужно.
Спасибо
1 ответ
Создайте Java Web Socket Client для /wsDashboard для метода onmessage конечной точки @ServerEndpoint("/wsServer") и сохраните его в пользовательских свойствах. когда вы получаете сообщение, просто перешлите его в веб-сокет / wsServer.
@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/