2016-05-04 18 views
0

STOMP javascript Webソケットを使用してmqttブローカーに接続しようとしています。接続が行われます。しかし、私のコードのコールバック関数は呼び出されていませんか? しかし、pingメッセージは送信されます。STOMP Webソケットコールバックが機能しない

私はホストアドレスとして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

おかげ

+0

何が間違っているか把握できますか? – sachith

+0

コールバック関数を使用した後にコールバック関数を定義したことが原因ですか?関数定義の後に 'client.connect( 'username'、 'pw'、connect_callback、on_error);を配置してみてください – Akurn

+0

ありがとうございました...それは働いていました... – sachith

答えて

1

彼らが使用している後にコールバックが定義されています。

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