@OnWebSocketClose是否总是被调用?我得到了@onwebsocketerror,@onwebsocketclose没有被调用
@onwebsocketclose是否总是被调用?我收到@onwebsocketerror,@onwebsocketclose没有收到呼叫@OnWebSocketClose是否总是被调用?我得到了@onwebsocketerror,@onwebsocketclose没有被调用,websocket,jetty,Websocket,Jetty,@onwebsocketclose是否总是被调用?我收到@onwebsocketerror,@onwebsocketclose没有收到呼叫 There might be some broken pipe connection . StackTrace : org.eclipse.jetty.io.EofException: null at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:283) ~[ap
There might be some broken pipe connection .
StackTrace :
org.eclipse.jetty.io.EofException: null
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:283) ~[application.jar:?]
at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:422) ~[application.jar:?]
at org.eclipse.jetty.io.WriteFlusher.completeWrite(WriteFlusher.java:378) ~[application.jar:?]
at org.eclipse.jetty.io.ChannelEndPoint$3.run(ChannelEndPoint.java:132) ~[application.jar:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~[application.jar:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~[application.jar:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~[application.jar:?]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) ~[application.jar:?]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) ~[application.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) ~[application.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) ~[application.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111]
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.write0(Native Method) ~[?:1.8.0_111]
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47) ~[?:1.8.0_111]
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:93) ~[?:1.8.0_111]
at sun.nio.ch.IOUtil.write(IOUtil.java:65) ~[?:1.8.0_111]
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:471)~[?:1.8.0_111]
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:261) ~[application.jar:?]
关闭方法用于WebSocket握手完成或异常完成 I/O错误、空闲超时、严重断开连接和其他错误都在错误方法上
onClose()
或onError()
上的任何事件都表示会话结束
异常闭包(可丢弃的)在调用2个应用程序事件方法中的哪一个方法上是快速的
一些行为:
- 我们尝试只通知
一次onClose()
- 我们尝试只通知
一次onError()
- 如果调用了
,则不会调用onClose()
onError()
- 如果调用了
,则不会调用onError()
onClose()
- 如果确定关闭来自异常,则:
- 异常记录在调试级别
- 调用应用程序
(如果尚未调用)onError()
- 关闭帧已排队(如果尚未发送或排队)
- 关闭帧发送成功或失败时,连接断开。(在这种例外情况下,无需等待远程关闭帧)
- 在WebSocket客户端上,连接将失败并出现异常(当尝试从连接获取会话对象时,这可能会被报告为失败)
- 在WebSocket服务器上,连接将不会成功,不会创建WebSocket会话,不会创建端点,也不会调用
onOpen()