STOMP Spring WebSocket消息超出大小限制

我正在将SpringWebSocket实现到我们的Spring MVC

Web应用程序中。但是,当我尝试向端点发送非常大的消息时,我遇到了超出大小限制的消息。

我收到以下错误:

message:The 'content-length' header 68718  exceeds the configured message buffer size limit 65536

14:49:11,506 ERROR [org.springframework.web.socket.messaging.StompSubProtocolHandler] (http-localhost/127.0.0.1:8080-4) Failed to parse TextMessage payload=[13684590},..], byteCount=16384, last=true] in session vlsxdeol. Sending STOMP ERROR to client.: org.springframework.messaging.simp.stomp.StompConversionException: The 'content-length' header 68718 exceeds the configured message buffer size limit 65536

at org.springframework.messaging.simp.stomp.BufferingStompDecoder.checkBufferLimits(BufferingStompDecoder.java:148) [spring-messaging-4.1.6.RELEASE.jar:4.1.6.RELEASE]

at org.springframework.messaging.simp.stomp.BufferingStompDecoder.decode(BufferingStompDecoder.java:124) [spring-messaging-4.1.6.RELEASE.jar:4.1.6.RELEASE]

这是我的配置:

@MessageMapping("/user/sockettest" )

@SendTo("/topic/sockettestresult")

public String sockAdd(ListId[] listIds) {

..

SecurityContextHolder.getContext().getAuthentication().getPrincipal();

return stringRet;

}

xml配置如下所示:

<websocket:stomp-endpoint path="/user/sockettest">

<websocket:sockjs/>

</websocket:stomp-endpoint>

<websocket:simple-broker prefix="/topic"/>

<websocket:message-converters register-defaults="false">

<bean id="mappingJackson2MessageConverter" class="org.springframework.messaging.converter.MappingJackson2MessageConverter">

<property name="objectMapper" ref="objectMapper"></property>

</bean>

</websocket:message-converters>

</websocket:message-broker>

客户端代码如下所示:

function versionFiles() {

stompClient.send("/testbrkr/user/sockettest", {}, JSON.stringify(listIds));

}

您能告诉我什么是一个好的解决方法吗?

:如果您知道最大尺寸限制是多少

 <websocket:transport message-size="75536" send-buffer-size="75536"></websocket:transport>

我正在研究如何进行部分消息传递,一旦发现并能正常工作将在此处发布

回答:

考虑定义的<websocket:transport message-size=""/>选项<websocket:message-broker>

配置传入的子协议消息的最大大小。例如,当使用SockJS后备选项时,可以将STOMP消息作为多个WebSocket消息或多个HTTP POST请求接收。

在注解配置中,可以使用WebSocketMessageBrokerConfigurer.configureWebSocketTransport(WebSocketTransportRegistration)实现以及与此相关的方法实现相同setMessageSizeLimit()的目的。

以上是 STOMP Spring WebSocket消息超出大小限制 的全部内容, 来源链接: utcz.com/qa/431336.html

回到顶部