gpt4 book ai didi

java - 使用 sockjs 踩在套接字上无法连接 Spring 4 WebSocket

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:11 24 4
gpt4 key购买 nike

尝试使用 Spring 4 WebSocket 和 STOMP over socket using sockjs。我遇到了一个问题。

我的配置:

websocket.xml - spring 上下文的一部分

<websocket:message-broker application-destination-prefix="/app">  
<websocket:stomp-endpoint path="/ws">
<websocket:sockjs/>
</websocket:stomp-endpoint>
<websocket:simple-broker prefix="/topic"/>
</websocket:message-broker>

Controller 代码:

@MessageMapping("/ws")
@SendTo("/topic/ws")
public AjaxResponse hello() throws Exception {
AjaxResponse ajaxResponse = new AjaxResponse();
ajaxResponse.setSuccess(true);
ajaxResponse.addSuccessMessage("WEB SOCKET!!! HELL YEAH!");
return ajaxResponse;
}

客户端:

var socket = new SockJS("<c:url value='/ws'/>");               
var stompClient = Stomp.over(socket);
stompClient.connect({}, function(frame) {
alert('Connected: ' + frame);
stompClient.send("/app/ws", {}, {});
stompClient.subscribe('/topic/ws', function(response){
alert(response.success);
});
});

输出:

Opening Web Socket... stomp.js:130
GET http://localhost:8080/ws/info 404 (Not Found) sockjs-0.3.js:807
Whoops! Lost connection to undefined stomp.js:130

我做错了什么?

我在谷歌中找到了例子(TickerStocks 或类似的东西,问候应用程序(Spring 的例子)),所有这些都给我同样的错误。我尝试将 WebSocket 与握手一起使用(没有 sockjs)- 结果相同)。

附加信息:

方法 public AjaxResponse hello(); 放置在根上下文“/”上的 IndexController 中。所以我可以提供完整路径:http://localhost:8080/ws。部署测试的tomcat7和tomcat8。

最佳答案

我关注 Boris The Spider建议和我开始使用 Java 配置(AppConfig 和 WebInit 文件)而不是 XML 配置文件。当我完成迁移时 - 我尝试了 websockets - 它是有效的!我认为主要问题出在 WebSocket 的 XML 配置中。

关于java - 使用 sockjs 踩在套接字上无法连接 Spring 4 WebSocket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22481357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com