最近在做一个WebSocket项目,后台使用了Stomp协议的WebSocketConfigurer,但是前端在测试的时候,发现一个很奇怪的问题:

本地的测试代码,最初我使用了Java+SockJS实现:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketStompConfig implements WebSocketMessageBrokerConfigurer {@Overridepublic void registerStompEndpoints(StompEndpointRegistry registry) {registry.addEndpoint("/density").setAllowedOrigins("*") //解决跨域问题
                .withSockJS();}@Overridepublic void configureMessageBroker(MessageBrokerRegistry config) {config.enableSimpleBroker("/topic");}
}

var url = "http://172.18.171.167:8080/density"
var socket = new SockJS(url)
var stompClient = Stomp.over(socket)

这种情况下自测可以通过

但是前端反应,SockJS不支持同时打开多个Socket订阅(我也不清楚到底是否真实,懒得追究了),于是需要研究如何在前端通过原生WebSocket的方式而不是SockJS的方式建立客户端(BTW 我一直觉得这是前端的活儿,我也不明白我一个后端为什么要搞这个)

按照网上的教程,写了如下的代码:

var stompClient = Stomp.client('ws://172.18.171.167:8080/density');stompClient.connect({}, function (frame) {setConnected(true);console.log('Connected:' + frame);stompClient.subscribe('/topic/callback', function (response) {showCallback(response.body);});});

但是这时无论如何,前端都会报如下的错误:

failed: Unexpected response code: 200 

试了很多种方法,但是都没法儿解决问题,最终在Stack Overflow的一个回答下面的Comment里面找到答案:

将原来的URL

ws://172.18.171.167:8080/density/

改为

ws://172.18.171.167:8080/density/websocket

生效!!!

具体为什么,我也不知道。。。Orz

转载于:https://www.cnblogs.com/chrischeng/p/10237523.html

WebSocket使用中Stomp Client连接报ERROR CODE 200的解决办法相关推荐

  1. MySQL更新时Error Code:1093和Error Code:1175的解决办法

    Error Code: 1093. You can't specify target table 'ws_product' for update in FROM clause 这个是我们在使用upda ...

  2. 关于E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决

    关于E: Sub-process /usr/bin/dpkg returned an error code (1)错误解决 前言: 在用apt-get安装软件时出现了类似于: install-info ...

  3. CentOS 7虚拟机克隆,以及克隆后主机名和静态IP地址的修改,无法重启网络服务( because the control process exited with error code)的解决方法

    目录 虚拟机的克隆 主机名的修改 静态IP地址的修改 无法重启网络服务( because the control process exited with error code)的解决方法 虚拟机的克隆 ...

  4. Windows下使用pip安装模块发生“failed with error code 1”的解决方法

    Windows下Python安装部分模块时出错,错误代码类似于下面这种: Command "f:\python\python36\python.exe -u -c "import ...

  5. pip intall 出现 error: subprocess-exited-with-error 错误的解决办法

    pip intall 出现 error: subprocess-exited-with-error 错误的解决办法 问题发生 解决办法 问题发生 安装环境 操作系统:CentOS Python:3.8 ...

  6. Mac cnpm装包时提示Error: EACCES: permission denied解决办法

    Cnpm装包时提示Error: EACCES: permission denied解决办法 2018年03月04日 09:31:51 miniminixu 阅读数:1598 版权声明:本文为博主原创文 ...

  7. 使用ESP8266-01S 作为Station PC作为Server通讯出现 ERROR CLOSED问题的解决办法

    使用ESP8266-01S 作为Station PC作为Server通讯出现 ERROR CLOSED问题的解决办法 连接步骤 问题 解决办法 连接步骤 连接步骤是按照B站上海创电子UP的方法连接的, ...

  8. 一键还原精灵万能的安装方法及error loading os的解决办法

    本篇文章的思路来源于"一键还原精灵官方论坛",本人只是结合自己的使用经验做个笔记,本人认为一键还原这个软件很好,特别支持,很实用. 简单说明一下和咱们做一键恢复相关的一键恢复(指专 ...

  9. grub error: unknown filesystem的解决办法

    Linux系统下出现grub error: unknown filesystem的解决办法 参考于简书大佬的解决方案 问题:在今天进行 Windows11 的更新过程中,某一次重启过后出现了类似如下的 ...

最新文章

  1. android SurfaceView
  2. Android设备唯一性判断
  3. Spring Cloud(四) API网关Zuul
  4. 一句SQL随机查询ACCESS中的几条记录
  5. aic值检验 p值_23. 假设检验的时候为什么常写p lt; 0.05,而不写具体的p值?
  6. ajax异步延迟加载图片,lazyload.JS实现图片异步延迟加载
  7. 9_林业专题图的制作
  8. Idea 设置方法注释模板 Idea 2021.2配置方法类注释模板
  9. 歌乎:985博士生对996的困惑
  10. “校园知网”5月5日冲刺计划书
  11. 二十年后的家乡(小学习作)
  12. C#实现QQ窗体的步骤和总结
  13. 一文解读广告投放落地页
  14. C++我的世界源代码
  15. 夜深模拟器安装的一些问题
  16. 消息 ByteBuf 详解
  17. Hudson插件开发入门体验
  18. 帆软BI绕过限制思路
  19. 阿里云视频点播测试问题解决 (获取播放地址播放)
  20. 扭曲的空间和扭曲的能量场

热门文章

  1. android两个java文件内容_java – 在1个请求中将多个文件从Android上传...
  2. mongodb mysql 写_MySQL和MongoDB语句的写法对照
  3. mysql数据库删除列数据_MySQL数据库-数据表、以及列的增删改查
  4. harmonyos sdk,HarmonyOS SDK对应的API版本跃迁引发的历史工程适配问题解决方案
  5. linux讲日志暂停,linux – Rsyslog在日志轮换后停止向远程服务器发送数据
  6. 计算机专业后悔么,王言匀
  7. java 里面write,java 中 System.out.println()和System.out.write()的区别
  8. 登陆 manager app显示不是私密链接_小米上线了一款靠指静脉识别开锁的私密箱,打造你的私人存储空间...
  9. 冒泡排序--Java
  10. 用计算机解决问题 评课稿,总结反思:二年级数学lbrack;解决问题rsqb;评课稿