2017-08-12 3 views
0

私はSpringの公式ガイドの後に基本的なSpring WebSocketsアプリケーションを実装しようとしています。私が持っているファイルには、次のとおりです。Spring WebSockets Stomp.subscribeが動作しない

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!");; 
} 

私は私のインデックスにボタンがあります。 htmlをクリックするとsendMessage関数が呼び出され、メッセージが送信されたコンソールログが取得されます。h私は決してsubscribe関数で返事を得ることはありません。クライアントはWebSocketサーバーに正常に接続し、これをコンソールに出力します。私は間違って何をしていますか?

答えて

2

以下のようなプライベート

変更、それを/チャット/にプライベート変更/:

@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; 
    } 
} 
+0

ああ、私の悪いです。私は既に宛先プレフィックスを扱っているMessageMappingの間で混乱しています。 –

+0

cool @AndrejNaumovski – Barath

関連する問題