[英]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.