如何在java spring websocket中实现乒乓

Edg*_*erg 1 java ping websocket spring-boot spring-websocket

根据此处的文档https://tools.ietf.org/html/rfc6455#page-37websocket必须ping使用pong.

我已经实现spring boot websocket处理websocket来自客户端的连接。

我有一个定期websocket发送的客户端ping frames

我在这里/sf/answers/1710682991/发现我无法在 java 中处理 ping 消息。

我对此有疑问-

  1. 我应该处理这些ping请求java spring-boot websocket吗?
  2. 如果是的话,我如何在 Spring Boot 应用程序中实现它并响应ping请求pong

ben*_*enw 5

我应该在 java spring-boot websocket 中处理这些 ping 请求吗?

服务器将自动回复乒乓。

对于 Tomcat,请参见

https://github.com/apache/tomcat85/blob/b21d02042c408053a1944b27c3196ec9be3db381/java/org/apache/tomcat/websocket/WsFrameBase.java#L348

https://github.com/apache/tomcat85/blob/b21d02042c408053a1944b27c3196ec9be3db381/java/org/apache/tomcat/websocket/WsFrameBase.java#L41-L42

对于码头

https://github.com/eclipse/jetty.project/blob/b0f34fec3f4156c6fb250132fe95a895e07fb5ae/jetty-websocket/websocket-common/src/main/java/org/eclipse/jetty/websocket/common/events/AbstractLEventDriver.java# L143

ping 在 spring websocket 处理程序中没有暴露(接收部分)

使用 jetty 可以收到 ping 通知(请参阅 参考资料org.eclipse.jetty.websocket.api.WebSocketPingPongListener

但它不被 spring-websocket 使用。