STOMP web套接字回调不'不起作用

STOMP web socket callback doesn't work

本文关键字:不起作用 web 套接字 回调 STOMP      更新时间:2023-09-26

我正在尝试使用STOMP javascript web套接字连接到mqtt浏览器。已建立连接。但是我的代码中的回调函数没有被调用?但是ping消息是发送的。

我正在使用一个url作为主机地址。这是我的密码。

<!DOCTYPE html>
<html>
<head>

  <script src="http://cdn.jsdelivr.net/sockjs/0.3.4/sockjs.min.js"></script>
  <script src="stomp.js"></script>
  <script>
var ws = new SockJS('http://108.567.234.143:9876/stomp');

var client = Stomp.over(ws);


client.connect('username', 'pw', connect_callback, on_error);

client.heartbeat.outgoing = 20000; // client will send heartbeats every 20000ms
client.heartbeat.incoming = 0;     // client does not want to receive heartbeats
                                   // from the server
var connect_callback = function() {
   alert("Connected to rabbitMQ");
var subscription = client.subscribe("CRICKET", subs_callback);
console.log('subscribe to CRICKET'); 
};
var on_error =  function(error) {
    console.log('error');
};
var    subs_callback = function(message) {
// called when the client receives a STOMP message from the server
if (message.body) {
  alert("got message with body " + message.body)
//console.log('got message with body' + message.body);
} else {
  alert("got empty message");
}
};

console.log('message.body');

</script>

</head>
<body> 

hello world

</body>
</html>  

我无法订阅某个主题。请告诉我怎么了?这是控制台日志

感谢

回调是在使用后定义的。

.connect()函数很可能默默地忽略了未定义的函数,所以您没有看到任何错误。

在定义回调之后将.connect()移动到应该可以解决此问题。

var ws = new SockJS('http://108.567.234.143:9876/stomp');

var client = Stomp.over(ws);

client.heartbeat.outgoing = 20000; // client will send heartbeats every 20000ms
client.heartbeat.incoming = 0;     // client does not want to receive heartbeats
                                   // from the server
var connect_callback = function() {
   alert("Connected to rabbitMQ");
var subscription = client.subscribe("CRICKET", subs_callback);
console.log('subscribe to CRICKET'); 
};
var on_error =  function(error) {
    console.log('error');
};
var    subs_callback = function(message) {
// called when the client receives a STOMP message from the server
if (message.body) {
  alert("got message with body " + message.body)
//console.log('got message with body' + message.body);
} else {
  alert("got empty message");
}
};

client.connect('username', 'pw', connect_callback, on_error);

console.log('message.body');