我正在使用 Spring Boot 和 Angular 构建网络聊天。为此,我将 Websockets 与客户端 SockJS 和 Webstomp 以及服务器端 Spring 结合使用。
问题是我在运行时在控制台上收到此错误:
弃用:未定义不是公认的 STOMP 版本。在下一个主要客户端版本中,这将关闭连接。
我在 google 上查了一下,在 github stomp 项目上找到了这个线程:https : //github.com/JSteunou/webstomp-client/issues/75
这是与 SockJS 和 Webstomp 的协议兼容性问题。
所以,我在下面的代码中添加了options参数(即使协议参数不允许用于 over 方法?)
var socket = new SockJS("http://localhost:8086/ws");
var options = {debug: false, protocols: webstomp.VERSIONS.supportedProtocols()};
var stompClient = webstomp.over(socket, options);
Run Code Online (Sandbox Code Playgroud)
并且错误信息消失了。但是在请求标头中仍然没有标头 Sec-Websocket-Procotol 来定义使用哪个协议,我想我将来会遇到问题。
我该怎么做才能使我的代码正常工作?
客户端(角度)
connectWebSocketRoom() {
var socket = new SockJS("http://localhost:8086/ws");
var options = {debug: false, protocols: webstomp.VERSIONS.supportedProtocols()};
var stompClient = webstomp.over(socket, options);
// var …Run Code Online (Sandbox Code Playgroud)