在用0.20.0客户机在Jetty上运行的2.2.0环境中,有时,尽管很少,我们的日志中会出现以下情况:
12:18:01.105 WARN org.atmosphere.websocket.WebSocket: Unable to write 501 Websocket protocol not supported
12:18:01.106 WARN o.a.w.protocol.SimpleHttpProtocol: Status code higher or equal than 400. Unable to deliver the websocket messages to installed component. Status 501 Message Websocket protocol not supported这种垃圾邮件发送的速度非常快,大约每隔5ms,如果在生产中发生这种情况,那么除了摧毁系统之外,没有别的办法了。所以我们真的需要避免这种情况。
这可能是我们客户端的一个问题,但我想知道的是,是否有一种方法可以识别服务器后端的此类错误,并关闭连接,如果我们不能解决根本原因呢?
..。编辑,大约六个月后:这个问题似乎是由早期的Jetty异常引起的:
11:05:54.363 ERROR o.a.container.Jetty9WebSocketHandler:{} org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onReadTimeout(AbstractWebSocketConnection.java:521) device上的读取超时-交互-服务-1.0.jar:na在org.eclipse.jetty.io.AbstractConnection.onFillInterestedFailed(AbstractConnection.java:258)设备-交互-服务-1.0 .jar:na在org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillInterestedFailed(设备-交互-服务-1.0.jar :na在org.eclipse.jetty.io.AbstractConnection$ReadCallback$1.run(AbstractConnection.java:420)设备-交互-1.0.jar:na在org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:601)设备-交互-服务-1.0.jar:na在org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532)设备-交互-服务-1.0.jar:na在org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532)设备在java.lang.Thread.run(Thread.java:745) na:1.8.0_51 11:05:54.365调试o.a.w.DefaultWebSocketProcessor:无法正确完成2d48f7ce-6150-42c2-b815-93acf94bdb93 11:05:55.156警告org.atmosphere.websocket.WebSocket:无法编写不支持的501个Websocket协议,11:05:55.157警告o.a.w.protocol.SimpleHttpProtocol:状态代码高于或等于400。无法将websocket消息传递到已安装的组件。状态501消息Websocket协议不支持11:05:55.201警告org.atmosphere.websocket.WebSocket:无法编写501WebSocket协议不支持11:05:55.202警告o.a.w.protocol.SimpleHttpProtocol:状态代码高于或等于400。无法将websocket消息传递到已安装的组件。状态501消息Websocket协议不支持11:05:55.203警告org.atmosphere.websocket.WebSocket:无法编写501WebSocket协议不支持.
在我看来,这个连接似乎是挂起的,在我的@ManagedService上没有调用@Disconnect方法。
我想知道如何拦截这一点,并关闭连接,迫使客户端重新连接。
发布于 2015-06-10 12:42:44
编写自己的WebSocketProtocol或扩展SimpleHttpProtocol#onError https://github.com/Atmosphere/atmosphere/wiki/Writing-WebSocket-Sub-Protocol
https://stackoverflow.com/questions/30643043
复制相似问题