如何使用 spring+stomp+sockjs 获得 websocket 响应
Posted
技术标签:
【中文标题】如何使用 spring+stomp+sockjs 获得 websocket 响应【英文标题】:how to get websocket response with spring+stomp+sockjs 【发布时间】:2015-01-19 08:11:01 【问题描述】:我使用spring+stomp向websocket客户端广播消息,但是我怎么知道结果是成功的呢?我使用setSendTimeout方法并catch Exception来检测convertAndSend是否成功,但是不起作用! java代码
@Resource
private SimpMessagingTemplate simpMessagingTemplate;
@RequestMapping("/test")
public String test()
simpMessagingTemplate.setSendTimeout(1);
String result;
try
simpMessagingTemplate.convertAndSend("/topic/test", "haha");
result = "success!";
catch (Exception e)
result = "failed! \n" + e.toString();
return result;
js代码
<script src="/lib/websocket/sockjs.min.js"></script>
<script src="/lib/websocket/stomp.min.js"></script>
<script>
var socket = new SockJS("/kefu");
var client = Stomp.over(socket);
client.debug = function (str)
;
client.connect(
,
function ()
client.subscribe('/topic/test', function(msg)
console.log(msg);
);
,
function (error)
console.log(error);
);
</script>
【问题讨论】:
【参考方案1】:WebSockets 是 TCP over HTTP 的抽象实现。 TCP 是可靠的,并保证将数据包传递给接收方。因此,您无需担心从应用程序控制器到前端 javascript 的传递。
【讨论】:
感谢您的回答!连接断开后我没有检测到,然后我调用convertAndSend方法,我不知道客户端是否收到我的消息!以上是关于如何使用 spring+stomp+sockjs 获得 websocket 响应的主要内容,如果未能解决你的问题,请参考以下文章
带有 Sockjs 和 Spring 4 但没有 Stomp 的 WebSocket
如何在 Spring 5.3 及更高版本中使用 Stomp 和 SockJS 处理 CORS 起源?
如何使用 SockJs 通过 STOMP Java 客户端验证 Spring 非 Web Websocket?
没有 SockJS/StompJS 的 Spring STOMP 服务器
将 Spring websockets (sockJS + Stomp) 与基于令牌的身份验证 (JWT) 一起使用的最佳方法