如何在使用 stomp 时让我的 springboot 应用程序 websocket 应用程序通过“ws://”url 连接
Posted
技术标签:
【中文标题】如何在使用 stomp 时让我的 springboot 应用程序 websocket 应用程序通过“ws://”url 连接【英文标题】:How can i make my springboot app websocket app get connected via a "ws://" url while using stomp 【发布时间】:2018-11-04 14:31:46 【问题描述】:我有一个 springboot 应用程序,我想通过电话等设备连接 websocket,所以我正在寻找一种方法让我的 websocket 有一个以“ws://”开头的入口点。在“http://www.websocket.org/echo.html”上测试我的默认 websocket url 应该是“ws://localhost:8080/websocket-example”时,它没有通过。但 sockjs 在我的客户端使用 ("http://localhost:8080/websocket-example") 调用它:
var socket = new SockJS('http://localhost:8080/websocket-example');
stompClient = Stomp.over(socket);
stompClient.connect(,function (frame)
我目前正在使用 stomp,我的配置如下所示:
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfiguration extends AbstractWebSocketMessageBrokerConfigurer
@Override
public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry)
stompEndpointRegistry.addEndpoint("/websocket-example")
.setHandshakeHandler(new CustomHandshakeHandler()).setAllowedOrigins("*")
.withSockJS();
@Override
public void configureMessageBroker(MessageBrokerRegistry registry)
registry.enableSimpleBroker("/topic");
registry.setApplicationDestinationPrefixes("/app");
根据这个post,它说我可以通过删除.withSockJS()
来实现一个ws:// 入口点,我这样做了,但它仍然没有工作(进一步阅读,据说这在springboot 上不起作用)。另一个选项是完全删除 stomp,此选项有效,但我无法将消息直接发送给个人用户。
如何在服务器端保持 stomp 的同时创建 ws:// 入口点?
【问题讨论】:
【参考方案1】:我遇到了类似的问题。试试这个,应该有帮助。
var socket = new WebSocket('ws://localhost:8080/websocket-example/websocket');
【讨论】:
谢谢,它成功了......请问您有在移动设备上使用 websocket 的经验吗? 对不起,我没有。以上是关于如何在使用 stomp 时让我的 springboot 应用程序 websocket 应用程序通过“ws://”url 连接的主要内容,如果未能解决你的问题,请参考以下文章
从控制台(Ctrl-C)终止时让我的 PyQt 应用程序退出的正确方法是啥?
Spring Stomp SimpUserRegistry 匿名用户