Как перенаправить сообщения из одной конечной точки в другую, используя 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/

Другие вопросы по тегам