spring-boot - Spring Boot 中 Stomp Controller 上的大消息失败
问题描述
我在 Spring Boot 应用程序中有一个 stomp 控制器,当我发送超过 256kb 的消息时,它无法进入控制器。我没有看到任何错误消息。是否有任何设置可以配置它以允许更大的消息。
这是我的控制器
@Component
@Controller
public class DiscussionController {
@MessageMapping("/discussion")
public void post(DiscussionMessage message) {
}
}
这是我的配置文件
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{
private final Logger log = LoggerFactory.getLogger(WebSocketConfig.class);
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("topic");
config.setApplicationDestinationPrefixes("ngdesk");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/ngdesk-websocket").setAllowedOrigins("*").withSockJS();
}
}
解决方案
您需要配置web-socket 传输,例如:
@Override
public void configureWebSocketTransport(WebSocketTransportRegistration registration) {
registration.setMessageSizeLimit(512 * 1024); // 512K
}
推荐阅读
- c - 函数'getline'的隐式声明甚至认为它是
- python - 什么是更快,scipy fsolve vs root?
- android - NFC 标签 - 控制标签扫描时间的方法
- ember.js - 使 AuthenticatedRouteMixin 内的嵌套路由可访问
- c# - 如何从数据库中一一选择一列的数据并显示到标签
- c# - 使用 Dapper 在 Linq 中多对多
- macos - QT5.9.1 应用内购买与 macOS 上的 Apple App Store
- vba - 在 VBA 中计算 NPV 的更有效方法
- c++ - 缺少类型说明符 - 声明静态成员后假定为 int 错误
- django - 来自 url 的函数或类