簡體   English   中英

Spring WebSockets Stomp.subscribe不起作用

[英]Spring WebSockets Stomp.subscribe not working

我一直在按照官方的Spring指南嘗試實現基本的Spring WebSockets應用程序。 我擁有的文件如下:

WebSocketConfig.java

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.enableSimpleBroker("/chat");
        registry.setApplicationDestinationPrefixes("/message");
    }

    @Override
    public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
        stompEndpointRegistry.addEndpoint("/ws-connect").setAllowedOrigins("*").withSockJS();
    }
}

MessageController.java

@Controller
public class MessageController {

    @MessageMapping(value = "/test")
    @SendTo("/private")
    public Message message(String messageText) {
        Message message = new Message();
        message.setMessage(messageText);r);
        message.setTimestamp(new Date());
        return message;
    }
}

sockets.js

var stompClient = null;

function connect() {
    var socket = new SockJS('http://localhost:8080/ws-connect');
    stompClient = Stomp.over(socket);
    stompClient.connect({}, function(frame) {
        console.log('Connected: ' + frame);
        stompClient.subscribe('/chat/private', function(message) {
            console.log('Here');
            console.log('Message is: ' + message);
        });
        console.log('Here2');
    })
}

connect();

function sendMessage() {
    stompClient.send('/message/test', {}, "Hello self!");;
}

我的index.html中有一個按鈕,當單擊該按鈕時會調用sendMessage函數,並且會收到一條控制台日志,指出該消息已發送,但是在訂閱函數中卻從未得到答復。 客戶端成功連接到WebSocket服務器,我將其輸出到控制台中。 我究竟做錯了什么?

將/ private更改為/ chat / private

如下更改:

@Controller
public class MessageController {

    @MessageMapping(value = "/test")
    @SendTo("/chat/private")
    public Message message(String messageText) {
        Message message = new Message();
        message.setMessage(messageText);r);
        message.setTimestamp(new Date());
        return message;
    }
}

暫無
暫無

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

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