Почему Wicket Websocket иногда отказывается отправить сообщение обратно на сервер? - PullRequest
0 голосов
/ 03 октября 2019

Я недавно столкнулся с этим в проекте, использующем Apache Wicket 8.6 (это также произошло с 7.15). Клиент Websocket успешно регистрируется в приложении внутреннего сервера и затем отказывается отправлять сообщение при нажатии специальной кнопки.

HTML-код (из HomePage.html):

<div>
    <button onclick="Wicket.WebSocket.send('connect');">CONNECT</button>
    <button onclick="Wicket.WebSocket.send('reset');">RESET</button>
</div>

Java (из HomePage.java):

add(new WebSocketBehavior() {

   private static final long serialVersionUID = 1L;

   @Override
   protected void onConnect(ConnectedMessage message) {

       super.onConnect(message);
       logger.log(Level.INFO, "onConnect() message is " + message.toString());
   }

   @Override
   protected void onMessage(WebSocketRequestHandler handler, TextMessage message) {

       logger.info("Got message " + message.getText() + " from browser.");
   }
}

В отладчике браузера я вижу событие кнопки при нажатии кнопки, но это так, как если бы сообщение просто не отправлялось. Что еще хуже, иногда это работает, иногда нет, поэтому я не могу воспроизвести его последовательно, но, поскольку это происходит как в Firefox 69.0, так и в Vivaldi 2.8.1664.38, я могу только предположить, что это то, что не нравится ни одному браузеру.

Кто-нибудь еще сталкивался с этой проблемой?

...