tomcat上Cometd的Websocket错误
我正在使用Cometd3.0.1并将其部署在Tomcat7.0.50上。我的日志中出现以下异常,无法找出原因。任何人都可以帮助理解导致此问题的可能原因,或者如何继续查找和调试此问题 p.S.Websocket运行良好,只是有时会出现这种情况 编辑:添加了更多日志。 在调试更多日志后(为cometd启用调试日志后),我有以下几点: 从日志中,我可以看到此weboscket错误可能与客户端id为e15ixjv018sxzarqls0m6uyarn的对等方重置连接有关,我查看了日志以查看此客户端的活动,以下是我的观察结果:tomcat上Cometd的Websocket错误,tomcat,websocket,cometd,Tomcat,Websocket,Cometd,我正在使用Cometd3.0.1并将其部署在Tomcat7.0.50上。我的日志中出现以下异常,无法找出原因。任何人都可以帮助理解导致此问题的可能原因,或者如何继续查找和调试此问题 p.S.Websocket运行良好,只是有时会出现这种情况 编辑:添加了更多日志。 在调试更多日志后(为cometd启用调试日志后),我有以下几点: 从日志中,我可以看到此weboscket错误可能与客户端id为e15ixjv018sxzarqls0m6uyarn的对等方重置连接有关,我查看了日志以查看此客户端的活动
Client uses acknowledgment extension
[20150423 01:34:48:129 EDT (http-nio-8109-exec-71) org.cometd.server.ext.AcknowledgedMessagesSessionExtension#processBatch 77 DEBUG] - Processing batch: last=0, client=-1, server=1 for e15ixjv018sxzarqls0m6uyarn - last connect 1429767288130 ms ago
[20150423 01:34:48:130 EDT (http-nio-8109-exec-71) org.cometd.server.BayeuxServerImpl#handle 658 DEBUG] - >> {ext={ack=-1}, clientId=e15ixjv018sxzarqls0m6uyarn, advice={timeout=0}, channel=/meta/connect, id=13749, connectionType=websocket}
[20150423 01:34:48:131 EDT (http-nio-8109-exec-71) org.cometd.server.ext.AcknowledgedMessagesSessionExtension#sendMeta 112 DEBUG] - Sending batch 1 for e15ixjv018sxzarqls0m6uyarn - last connect 1 ms ago
[20150423 01:34:48:131 EDT (http-nio-8109-exec-71) org.cometd.server.ext.AcknowledgedMessagesSessionExtension#deQueue 126 DEBUG] - Dequeuing 0/0 messages until batch 1 for e15ixjv018sxzarqls0m6uyarn - last connect 1 ms ago
[20150423 01:54:04:875 EDT (BayeuxServer2085170520 Scheduler) org.cometd.server.ServerSessionImpl#sweep 158 DEBUG] - Sweeping session e15ixjv018sxzarqls0m6uyarn - last
connect 70831 ms ago
[20150423 01:54:04:876 EDT (BayeuxServer2085170520 Scheduler) org.cometd.server.BayeuxServerImpl#removeServerSession 532 DEBUG] - Removing session e15ixjv018sxzarqls0m
6uyarn - last connect 70832 ms ago, timed out: true
[20150423 01:54:04:876 EDT (BayeuxServer2085170520 Scheduler) myapp.cometd.server.util.BayeuxSecurityPolicy#updateStatsForRemovedClient 168 DEBUG] - Removing timedout
client with ID: e15ixjv018sxzarqls0m6uyarn
[20150423 01:57:57:516 EDT (http-nio-8109-exec-22) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#onMessage 273 DEBUG] - Received [{"channel":"/meta/connect","connectionType":"websocket","id":"19851","clientId":"4x10d0bbudn0524iwtfvetfvann"}]
[20150423 01:57:57:516 EDT (http-nio-8109-exec-22) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#processMessages 305 DEBUG] - Processing {clientId=4x10d0bbudn0524iwtfvetfvann, channel=/meta/connect, id=19851, connectionType=websocket}
[20150423 01:57:57:516 EDT (http-nio-8109-exec-22) org.cometd.server.BayeuxServerImpl#handle 645 DEBUG] - > {clientId=4x10d0bbudn0524iwtfvetfvann, channel=/meta/connect, id=19851, connectionType=websocket} 4x10d0bbudn0524iwtfvetfvann - last connect 60222 ms ago
[20150423 01:57:57:517 EDT (http-nio-8109-exec-22) org.cometd.server.BayeuxServerImpl#handle 658 DEBUG] - >> {clientId=4x10d0bbudn0524iwtfvetfvann, channel=/meta/connect, id=19851, connectionType=websocket}
[20150423 01:57:57:517 EDT (http-nio-8109-exec-22) org.cometd.server.BayeuxServerImpl#handle 732 DEBUG] - << {channel=/meta/connect, id=19851, successful=true}
[20150423 01:57:57:517 EDT (http-nio-8109-exec-22) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#processMetaConnect 408 DEBUG] - Scheduled meta connect java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@4438c0c5
[20150423 01:58:57:517 EDT (pool-2-thread-1) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#cancelMetaConnectTask 260 DEBUG] - Cancelling meta connect task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@4438c0c5
[20150423 01:58:57:517 EDT (pool-2-thread-1) org.cometd.server.BayeuxServerImpl#extendSend 1071 DEBUG] - < {channel=/meta/connect, id=19851, successful=true}
[20150423 01:58:57:517 EDT (pool-2-thread-1) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#schedule 534 DEBUG] - Flushing 4x10d0bbudn0524iwtfvetfvann - last connect 60000 ms ago timeout=true metaConnectDelivery=false, metaConnectReply={channel=/meta/connect, id=19851, successful=true}, messages=[]
[20150423 01:58:57:517 EDT (pool-2-thread-1) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#send 435 DEBUG] - Sending 4x10d0bbudn0524iwtfvetfvann - last connect 60000 ms ago, replies=[{channel=/meta/connect, id=19851, successful=true}], messages=[]
[20150423 01:58:57:517 EDT (pool-2-thread-1) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler$Flusher#process 587 DEBUG] - Processing Entry@5b520f7[messages=0,replies=1]
[20150423 01:58:57:517 EDT (pool-2-thread-1) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler$Flusher#process 623 DEBUG] - Processing replies [{channel=/meta/connect, id=19851, successful=true}]
[20150423 01:58:57:517 EDT (pool-2-thread-1) org.cometd.websocket.server.WebSocketTransport#send 143 DEBUG] - Sending [{"channel":"/meta/connect","id":"19851","successful":true}]
[20150423 01:58:57:518 EDT (WebSocketServer-/cometd-1) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler$Flusher#process 587 DEBUG] - Processing null
[20150423 01:58:57:609 EDT (http-nio-8109-exec-10) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#onError 246 INFO] - WebSocket Error
java.io.IOException: Connection reset by peer
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:197)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at org.apache.tomcat.util.net.NioChannel.read(NioChannel.java:136)
at org.apache.coyote.http11.upgrade.NioServletInputStream.fillReadBuffer(NioServletInputStream.java:136)
at org.apache.coyote.http11.upgrade.NioServletInputStream.doRead(NioServletInputStream.java:80)
at org.apache.coyote.http11.upgrade.AbstractServletInputStream.read(AbstractServletInputStream.java:133)
at org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:45)
at org.apache.tomcat.websocket.server.WsHttpUpgradeHandler$WsReadListener.onDataAvailable(WsHttpUpgradeHandler.java:194)
at org.apache.coyote.http11.upgrade.AbstractServletInputStream.onDataAvailable(AbstractServletInputStream.java:189)
at org.apache.coyote.http11.upgrade.AbstractProcessor.upgradeDispatch(AbstractProcessor.java:92)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:605)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1721)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1679)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
[20150423 01:58:57:610 EDT (http-nio-8109-exec-10) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#onClose 240 DEBUG] - Closing 1006/Connection reset by peer - e15ixjv018sxzarqls0m6uyarn - last connect 363566 ms ago
在升级过程中似乎出现了问题。你试过Jetty吗?我这样做是因为这将有助于确定问题是在服务器上还是在客户机上。@sbordet Update这里我也遇到了jetty的这个问题,但例外情况不同,我不认为Jettysems的升级对我来说是客户机问题。Jetty异常表示服务器正在等待来自客户机的数据,但没有获取任何数据,Jetty空闲超时过期。欢迎您加入CometD邮件列表,在这里可以详细了解此问题。这里没有足够的信息来理解发生了什么。你试过CometD 3.0.4以及Jetty和Tomcat的最新版本吗?@sbordet我用一个观察和一些问题更新了这个问题。我从未尝试过上面提到的cometd/jetty版本。@sbord使用jetty时,每当我收到上面提到的WebCoket错误时,我将关闭1001/Idle Timeout-null
[20150421 15:40:40:345 EDT (qtp116211441-61492) org.cometd.websocket.server.AbstractWebSocketTransport$AbstractWebSocketScheduler#onError 246 INFO] - WebSocket Error
java.net.SocketTimeoutException: Timeout on Read
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onReadTimeout(AbstractWebSocketConnection.java:526)
at org.eclipse.jetty.io.AbstractConnection.onFillInterestedFailed(AbstractConnection.java:173)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillInterestedFailed(AbstractWebSocketConnection.java:496)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback$1.run(AbstractConnection.java:582)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:606)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:535)
at java.lang.Thread.run(Thread.java:745)