在那天我遇见你__ 2019-10-08 14:51 采纳率: 0%
浏览 2444

关于SpringBoot集成WebSocket后使用stomp发送消息对应路径未能成功接收到消息

自己尝试着搭建Springboot聊天室的项目,后台websocket配置如下

@Configuration
@EnableWebSocketMessageBroker //允许stomp协议
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{
    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/stomp")   //添加STOMP协议的端点。// 这个URL是供WebSocket客户端或SockJS客户端连接服务端访问的地址。
         .setAllowedOrigins("*").addInterceptors(new HttpSessionHandshakeInterceptor()). //添加允许跨域访问
         withSockJS();  //指定端点使用SockJS协议
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.setApplicationDestinationPrefixes("/topic,/queue") //服务器推送给客户端的前缀
                .enableSimpleBroker("/app");  //客户端发送给服务端的前缀
    }

}

消息接收类的代码如下

@Controller
public class MessageController {

    @MessageMapping("/test")
    @SendTo("/topic/hhh")
    public String sendMessage(Map<String,Object> map){
        return "miao";
    }
}

理论上前台应该发送消息到/api/test时Controller类应该能接收到消息,但是发送消息后未能进入controller类

html就不贴了,js前端代码如下

window.onload=function(){
   var sockJs=new SockJS("/stomp");
   var stomp=Stomp.over(sockJs);
   stomp.connect({},function (frame) {
       console.log(frame);
       stomp.subscribe("/topic/hhh",function (data) {
           console.log(data)
       });
   })

   document.getElementById("sendMesssage").onclick=function () {
       console.log(stomp.connected);
       var message=document.getElementById("talkMessage");
       stomp.send("/app/test",{},JSON.stringify({"message":message}));
   }
}

连接完成时frame的控制台日志打印如下
Frame {command: "CONNECTED", headers: {…}, body: ""}
body: ""
command: "CONNECTED"
headers:
heart-beat: "0,0"
version: "1.1"
proto: Object
proto: Object
send时并没有断开连接,为啥发送不到对应地址?

  • 写回答

2条回答 默认 最新

  • dabocaiqq 2019-10-08 22:11
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 高价求中通快递查询接口
  • ¥15 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?