【发布时间】:2017-12-12 14:03:17
【问题描述】:
我有一个 websocket - java 中的 stomp 客户端应用程序。它按预期工作,但是当我发送大约 16k 字节或更大的消息时。它正在抛出ConnectionLostException。我检查了一个javascript客户端。在 javascript 中,客户端以大约 16k 字节的块发送和接收数据,即使大小增加到 100k 字节,它也能正常工作。我检查了 stomp 文档中的大小限制,默认为 ~65kb。这种情况的原因可能是什么,因为手动分块数据是一项复杂的任务并且需要时间。任何意见,将不胜感激。
堆栈跟踪是
org.springframework.messaging.simp.stomp.ConnectionLostException: Connection closed
11:48:31.001 [WebSocketClient-AsyncIO-1] ERROR com.demo.webSocket.lib.usage.ExampleClientLib - Connection Closed
at org.springframework.messaging.simp.stomp.DefaultStompSession.afterConnectionClosed(DefaultStompSession.java:487)
at org.springframework.web.socket.messaging.WebSocketStompClient$WebSocketTcpConnectionHandlerAdapter.afterConnectionClosed(WebSocketStompClient.java:354)
at org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.onClose(StandardWebSocketHandlerAdapter.java:141)
at org.apache.tomcat.websocket.WsSession.fireEndpointOnClose(WsSession.java:535)
at org.apache.tomcat.websocket.WsSession.onClose(WsSession.java:513)
at org.apache.tomcat.websocket.WsFrameBase.processDataControl(WsFrameBase.java:341)
at org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:283)
at org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:127)
at org.apache.tomcat.websocket.WsFrameClient.processSocketRead(WsFrameClient.java:78)
at org.apache.tomcat.websocket.WsFrameClient.access$300(WsFrameClient.java:31)
at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:133)
at org.apache.tomcat.websocket.WsFrameClient$WsFrameClientCompletionHandler.completed(WsFrameClient.java:117)
at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
at sun.nio.ch.Invoker$2.run(Invoker.java:218)
at sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
【问题讨论】:
标签: java spring spring-boot websocket stomp