簡體   English   中英

沒有調用Spring Stomp Websockets回調

[英]Spring Stomp Websockets Callback Not Called

給出websocket配置:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer {
    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.setApplicationDestinationPrefixes("/app");
        registry.enableSimpleBroker("/queue", "/topic");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/add").withSockJS();
    }
}

和客戶端javascript:

<script type="text/javascript">
    console.log('begin javascript');

    var stompClient = null;

    function connect() {
        var socket = new SockJS('/myapp/add');
        stompClient = Stomp.over(socket);
        stompClient.connect({}, function(frame) {
            console.log('Connected to STOMP: ' + frame);
            stompClient.subscribe('/user/topic/abc', function(calResult) {
                console.log('*** Got it ***');
            });
        });
    }

    connect();

</script>

並從服務器發送此消息:

messagingTemplate.convertAndSendToUser(username, "/topic/abc", "hello");

回調永遠不會被解雇。

javascript控制台顯示連接:

連接到STOMP:CONNECTED用戶名:jschmoe heart-beat:0,0版本:1.1 SUBSCRIBE id:sub-0 destination:/ user / topic / abc

並且tomcat控制台顯示:

處理SUBSCRIBE目的地= / topic / abc-useryl3ovhr2 subscriptionId = sub-0 session = yl3ovhr2 user = jschmoe payload = byte [0]

然后在發送消息時:

處理MESSAGE目的地= / topic / abc-useryl3ovhr2 session = null payload = hello

似乎一切都有效,除了回調。

在我的情況下,問題是由XML配置引起的,一旦我使用@EnableWebSocketMessageBroker注釋切換到Java配置,我在客戶端收到了消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM