我使用了 sockjs websocket 服务器的 spring 实现,无法传输超过 8KB 的消息,以下是错误
2014-02-12 19:36:29,990 - org.springframework.web.socket.sockjs.transport.session.WebSocketServerSockJsSession - DEBUG - SockJS session id=35n41xel was closed, CloseStatus [code=1009, reason=The decoded text message was too big for the output buffer and the endpoint does not support partial messages]
任何想法如何增加缓冲区大小
我使用了以下工厂,因为 spring sockjs 利用了 tomcat 容器(应用程序部署在 tomcat 中,我还进行了调试以确认它确实使用了 tomcat lib)
@Bean
public WebSocketContainerFactoryBean createWebSocketContainer() {
WebSocketContainerFactoryBean container = new WebSocketContainerFactoryBean();
container.setMaxTextMessageBufferSize(16384);
container.setMaxBinaryMessageBufferSize(8192);
return container;
}
然后我的 URL 映射看起来
@Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
registry.addHandler(coBrowseSockJsCustomerHandler(), "/sockjs/cobrowse/customer/").withSockJS();}
我需要在某个地方用 sockjs 设置这个 bean 吗?sockjs 怎么知道它必须使用这个工厂?