WebSocket/Stomp機能を介してWebページをActiveMQに接続しようとしています。stomple.jsを使用していますが、GoogleChromeコンソールで次のエラーが発生します。
'ws:// localhost:61614 / stomp'へのWebSocket接続に失敗しました:予期しない応答コード:500
ActiveMQの構成は次のとおりです。
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?transport.closeAsync=false"/>
<transportConnector name="websockets" uri="ws://0.0.0.0:61614"/>
<transportConnector name="stomp+nio" uri="stomp+nio://0.0.0.0:61615?transport.closeAsync=false"/>
</transportConnectors>
そして私が使用しているjavascript:
<script type="text/javascript">
$(document).on("pageinit", "#myActiveGamesPage", function () {
function begin() {
client.begin({});
}
function commit() {
client.commit({});
}
function abort() {
client.abort({});
}
function disconnect() {
client.disconnect({ success: function () { console.log("dis"); }, failure: function () { console.log(42); } });
}
function reset() {
}
function sendMsg() {
var message = 'hola mundo';
client.send({
body: client.session + ": " + message,
});
}
if(!Stomple){
console.log("NO STOMPLE");
}else{
console.log("STOMPLE");
Stomple.debug = true;
var client = Stomple.create_client({
url: "ws://localhost:61614/stomp",
destination: "XXXXXXXXXXXXXXX",
login: "guest",
passcode: "guest",
socketOpen: function() {
console.log("socket opened");
},
socketMessage: function(msg) {
console.log("socket msg");
console.log(msg);
},
socketClose: function(e) {
console.log("socket close");
console.log(e);
},
socketError: function() {
console.log("socket error");
console.log(client.websocket);
return false;
}
});
var msgHandler = {
fn: function(msg) {
alert(msg.body);
}
};
client.subscribe({
handler: msgHandler.fn,
thisObj: msgHandler,
success: function() {//did subscription succeed?
console.log("sub ok..");
},
failure: function(reason) {//did subscription fail?
console.log(reason);
}
});
}
});
バイナリ形式を使用していて、クロム開発ツールのネットワークタブが空になっているため、クライアントがサーバー(ヘッダー)に何を送信しているかを確認できません。
また、Windowsファイアウォールを無効にしようとしましたが、同じ結果になりました。
これに関するドキュメントは見つかりませんでした。ActiveMQがエンドポイントを提供し、プロトコルをサポートしているため、サーバーで余分なものを開発する必要はないと思います。
誰かがこの作業の詳細な例または考えられる理由がありますか?