亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢測 Spring websocket stomp 訂閱消息(幀)?

如何檢測 Spring websocket stomp 訂閱消息(幀)?

素胚勾勒不出你 2021-09-12 15:58:01
我正在使用 Spring 5:如何檢測SUBSCRIBE來自 Stomp 客戶端的消息?根據我的理解,@SubscribeMapping應該讓我的控制器方法在客戶端訂閱主題時被調用,但這并沒有發生。這是我的服務器控制器:@Controllerpublic class MessageController {    // ...    @MessageMapping("/chat/{mId}")    @SendTo("/topic/messages")    public OutputMessage send(Message message, @DestinationVariable("mId") String mid, MessageHeaders headers, MessageHeaderAccessor accessor) throws Exception {        // ...    }    @SuppressWarnings("unused")    @SubscribeMapping({ "/", "/chat", "/topic/messages", "/messages", "/*" })    public void listen(Message message, MessageHeaders headers, MessageHeaderAccessor accessor) throws Exception {        int i = 0;        System.out.println("subscribed");    }}服務器配置:@Configuration@ComponentScan(basePackages= { "websockets" })@EnableWebSocketMessageBrokerpublic class WebSocketConfig implements WebSocketMessageBrokerConfigurer {    @Override    public void configureMessageBroker(MessageBrokerRegistry config) {        config.enableSimpleBroker("/topic");        config.setApplicationDestinationPrefixes("/app");    }    @Override    public void registerStompEndpoints(StompEndpointRegistry registry) {         registry.addEndpoint("/chat");         registry.addEndpoint("/chat").withSockJS();    }    @Override    public void configureWebSocketTransport(WebSocketTransportRegistration registry) {        WebSocketMessageBrokerConfigurer.super.configureWebSocketTransport(registry);    }}
查看完整描述

1 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

您還需要將“主題”注冊為應用程序目標主題config.setApplicationDestinationPrefixes({"/app", "/topic"});

否則 Spring 不會將訂閱消息轉發到應用程序,而只是將其轉發到消息代理通道。


查看完整回答
反對 回復 2021-09-12
  • 1 回答
  • 0 關注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號