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