Does spring-websocket STOMP support SUBSCRIBE id?

Viewed 3788

The STOMP spec says that SUBSCRIBE MUST have id header.

https://stomp.github.io/stomp-specification-1.2.html#SUBSCRIBE_id_Header

SUBSCRIBE id Header

Since a single connection can have multiple open subscriptions with a server, an id header MUST be included in the frame to uniquely identify the subscription. The id header allows the client and server to relate subsequent MESSAGE or UNSUBSCRIBE frames to the original subscription. Within the same connection, different subscriptions MUST use different subscription identifiers.

However, in spring's example https://spring.io/guides/gs/messaging-stomp-websocket/, it doesn't specify an id when subscribing destination.

function connect() {
    var socket = new SockJS('/gs-guide-websocket');
    stompClient = Stomp.over(socket);
    stompClient.connect({}, function (frame) {
        setConnected(true);
        console.log('Connected: ' + frame);
        stompClient.subscribe('/topic/greetings', function (greeting) {
            showGreeting(JSON.parse(greeting.body).content);
        });
    });
}

In spring's API, the SimpMessageSendingOperations.convertAndSendToUser doesn't support an id header explicitly.

My question is how to specify id header when sending a message to client?

1 Answers
Related