gpt4 book ai didi

javascript - STOMP Web 套接字回调不起作用

转载 作者:行者123 更新时间:2023-12-02 14:41:00 26 4
gpt4 key购买 nike

我正在尝试使用 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>

我无法订阅主题。请告诉我出了什么问题? Here is the console log

谢谢

最佳答案

回调在使用后被定义。

很可能 .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');

关于javascript - STOMP Web 套接字回调不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37018650/

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