Проблема с очередью сообщений в WebSocket с веб-приложением Spring Boot - PullRequest
0 голосов
/ 27 сентября 2019

Я использую WebSocket с веб-приложением Spring Boot.Почти все условия работают нормально.Но проблема в том, что, когда из SNMP пришло 2 быстрых «Trap message», функция convertAndSend отправляет эти 2 сообщения клиенту.На стороне клиента он получает два сообщения, но первое сообщение заменяется вторым сообщением (т.е. два сообщения одинаковы на стороне клиента).

На стороне сервера

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer 
{
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) 
    {
        registry.addEndpoint("/connect-websocket").withSockJS();
    }
}

Для отправки сообщения клиенту при получении сообщения прерывания SNMP

@Autowired
private SimpMessagingTemplate webSocket;

webSocket.convertAndSend("/ws/messages","SNMP trap message to client");

Клиентская сторона

<script src="sockjs.min.js"></script>
<script src="stomp.min.js"></script>

var socket = new SockJS('/my-app/connect-websocket');
var stompClient = Stomp.over(socket);
stompClient.connect({}, function (frame)
{
    console.log('Connected: ' + frame);
    stompClient.subscribe('/ws/messages', function (message) 
    {
        console.log("message=",message.body);
    });
},
function(message) //disconnect event
{

});

Я протестировал этот метод в контроллере и работает нормально.Я получил 3 разных сообщения.

@Autowired
private SimpMessagingTemplate webSocket;

webSocket.convertAndSend("/ws/messages","Message1 to client");
webSocket.convertAndSend("/ws/messages","Message2 to client");
webSocket.convertAndSend("/ws/messages","Message3 to client");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...