我正在开发一个涉及图像/视频的聊天应用程序,但无法理解我使用的stomp over websocket配置中的不同参数:
我注意到网页中的SockJs使用16K的帧大小发送消息。我还测试了消息大小限制,它确定了我可以传输的最大消息大小。
请告诉我以下内容:
流字节限制
发送缓冲区大小限制
http消息缓存大小
什么是部分消息?如何使用它们?在这里有用吗?
此外,我计划将图像/视频的最大大小设置为2GB,并期望在发布时有大约100个同时在线用户。
请告诉我们应该保持哪些大小以及原因。默认值是什么?每个参数会如何影响我的聊天应用程序的性能?
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/stomp").withSockJS()
.setStreamBytesLimit(15 * 1024)
.setHttpMessageCacheSize(15 * 1024);
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/queue/", "/topic/", "/exchange/");
registry.setApplicationDestinationPrefixes("/app");
}
@Override
public void configureWebSocketTransport(WebSocketTransportRegistration registration) {
registration.setSendTimeLimit(15 * 1000)
.setSendBufferSizeLimit(1 * 1024)
// max message size 2GB (2048 bytes) : default is 64KB
.setMessageSizeLimit(2 * 1024 * 1024);
}
}