tomcat上Cometd的Websocket错误

tomcat上Cometd的Websocket错误,tomcat,websocket,cometd,Tomcat,Websocket,Cometd,我正在使用Cometd3.0.1并将其部署在Tomcat7.0.50上。我的日志中出现以下异常,无法找出原因。任何人都可以帮助理解导致此问题的可能原因,或者如何继续查找和调试此问题 p.S.Websocket运行良好,只是有时会出现这种情况 编辑:添加了更多日志。 在调试更多日志后(为cometd启用调试日志后),我有以下几点: 从日志中,我可以看到此weboscket错误可能与客户端id为e15ixjv018sxzarqls0m6uyarn的对等方重置连接有关,我查看了日志以查看此客户端的活动

我正在使用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)