Я использую веб-сокет Spring 4 с RabbitMQ и STOMP. Мой брокер xml:
<websocket:message-broker application-destination-prefix="/app">
<websocket:stomp-endpoint path="/ws">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<websocket:stomp-broker-relay prefix="/topic"
relay-host="${websocket.relay.host}" relay-port="61613" client-login="XXXX" client-passcode="XXXX" system-login="XXXX" system-passcode="XXXX"
heartbeat-send-interval="20000" heartbeat-receive-interval="20000"/>
<!-- <websocket:simple-broker prefix="/topic"/> -->
<websocket:client-inbound-channel>
<websocket:executor core-pool-size="50" max-pool-size="100" queue-capacity="100" keep-alive-seconds="60"/>
</websocket:client-inbound-channel>
<websocket:client-outbound-channel>
<websocket:executor core-pool-size="50" max-pool-size="100" queue-capacity="100" keep-alive-seconds="60"/>
</websocket:client-outbound-channel>
<websocket:broker-channel>
<websocket:executor core-pool-size="50" max-pool-size="100" queue-capacity="100" keep-alive-seconds="60"/>
</websocket:broker-channel>
</websocket:message-broker>
Сообщения периодически теряются на клиенте. Я использовал SimpMessagingTemplate для пересылки сообщения брокеру.
Я также настроил размер текста как:
<beans:bean class="org.springframework.web.socket.server.standard.ServletServerContainerFactoryBean ">
<beans:property name="maxTextMessageBufferSize" value="8192000"/>
<beans:property name="maxBinaryMessageBufferSize" value="8192000"/>
</beans:bean>
Я не могу понять, теряются ли сообщения от сервера к брокеру или от брокера к браузеру.
Любая помощь будет оценена.