如何解决STOMP Spring Boot客户端ReferenceError:SockJS未定义
我想使用 STOMP Spring Boot 和客户端创建一个简单的聊天应用程序,该应用程序稍后会在其他域上运行。我创建了几个类和函数,但找不到此错误的解决方案。如果你能看看这个就太好了:)
所以我有两个 Spring Boot 类:
我的 WebSocketConfig 如下所示:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer{
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/chat").setAllowedOrigins("*").withSockJS();
}
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/topic/","/queue/");
config.setApplicationDestinationPrefixes("/app");
}
我的控制器看起来像这样:
@Controller
public class StompController {
@MessageMapping("/chat")
@SendTo("/topic/messages")
public ChatMessage send(ChatMessage message) throws Exception {
return message;
}
我关于这个主题的 Spring Boot 依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.2</version>
</dependency>
最后,我的客户端连接函数看起来像这样(vanilla JS):
function connect() {
var socket = new SockJS("http://localhost:8080/chat");
stompClient = Stomp.over(socket);
stompClient.connect({},function (frame) {
setConnected(true);
console.log("Connected: " + frame);
stompClient.subscribe(
"/chat/topic/messages",function (messageOutput) {
showMessageOutput(JSON.parse(messageOutput.body));
}
);
});
}
不知何故我总是收到错误:ReferenceError: SockJS is not defined
你能在没有 jQuery 的情况下解决这个问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。