我正在尝试检查和记录客户端和WebSocket服务器之间的ping / pong交换。
我尝试扩展BinaryWebSocketHandler,增加了这个方法:
@Override
protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception {
log.trace("RECEIVING PONG {} {}",message.getPayloadLength(), Utils.bytesToHex(message.getPayload().array()));
super.handlePongMessage(session, message);
}
@Override
protected void handleBinaryMessage(WebSocketSession session, BinaryMessage message) throws Exception {
log.trace("RECEIVING MSG {} {}",message.getPayloadLength(), Utils.bytesToHex(message.getPayload().array()));
}
我可以看到handleBinaryMessage日志,但看不到PONG日志。你知道为什么吗?是否可能未启用ping/pong?
1条答案
按热度按时间ippsafx71#
handlePongMessage()方法在接收到pong消息时调用,而不是在接收到ping消息时调用。这不一定是你所期望的。
我测试的方法是使用wscat。
所以客户端必须发送一个pong,而不是ping!