问题的根源在于问题的根源是你没有在registerStompEndpoints中配置任何端点。尝试使用STOMP但尚未配置任何STOMP端点的应用程序将无法正常工作。
开始的代码是这样的:
@Configuration
public class CustomWebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Bean(value = "serverEndpointExporter")
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
但是没有配置任何端点,所以应该重写一个方法:registerStompEndpoints
/**
* 注册stomp端点。起到的作用就是添加一个服务端点,来接收客户端的连接,
* registry.addEndpoint("/tmax/ws")
* 表示添加了一个 /tmax/ws 端点,客户端可以通过这个端点来进行连接。
* withSockJS() 的作用是开启 SockJS 访问支持,即可通过http://IP:PORT/tmax/ws 来和服务端 websocket 连接。
*/
@Override
public void registerStompEndpoints(final StompEndpointRegistry registry) {
// Handshake endpoint
registry.addEndpoint("stomp").withSockJS();
}
这样的话项目就可以正常运行