#javascript #rabbitmq #web-stomp
Вопрос:
Я пытаюсь отправлять сообщения в rabbitmq с помощью HTML-страницы со скриптом JS, который содержит следующие строки:
var client = new StompJs.Client({
brokerURL: 'ws://localhost:15674/ws',
connectedHeaders: { login: 'my_rabbit_username', passcode: 'my_rabbit_password' },
reconnectDelay: 5000,
heartbeatIncoming: 4000,
heartbeatOutgoing: 4000,
});
client.activate();
function update_rabbit(){
var rabbitName = document.getElementById("myRabbitLoc").value;
console.log(rabbitName);
client = new StompJs.Client({
brokerURL: rabbitName,
connectedHeaders: { login: 'my_rabbit_username', passcode: 'my_rabbit_password' },
reconnectDelay: 5000,
heartbeatIncoming: 4000,
heartbeatOutgoing: 4000,
});
client.activate();
}
client.onStompError = function (frame) {
// Will be invoked in case of error encountered at Broker
// Bad login/passcode typically will cause an error
// Complaint brokers will set `message` header with a brief message. Body may contain details.
// Compliant brokers will terminate the connection after any error
console.log('Broker reported error: ' frame.headers['message']);
console.log('Additional details: ' frame.body);
};
однако, если я попытаюсь изменить «localhost» на любое другое имя компьютера в моей локальной сети или даже изменить его на имя моей собственной машины, сообщение не придет. и я получаю следующее сообщение:
Broker reported error: Bad CONNECT
xxx.html:153 Additional details: non-loopback access denied
Был бы очень признателен за любую помощь в том, как это сделать
Изменить: удалось избежать сообщения об ошибке при изменении имени моего компьютера, но сообщения по-прежнему не будут доставлены . при попытке изменить его на другой сетевой компьютер возникают следующие ошибки:
WebSocket connection to 'ws://xxx.xxx.net/15674/ws' failed:
_createWebSocket @ client.ts:510
(anonymous) @ client.ts:432
fulfilled @ byte.ts:13
которые продолжают продолжаться…
Ответ №1:
очевидно, мой первый код подключения был несколько неправильным. Я использовал эту фразу
connectedHeaders: { login: 'my_rabbit_username', passcode: 'my_rabbit_password' },
в то время как я должен был использовать:
connectHeaders: { login: 'my_rabbit_username', passcode: 'my_rabbit_password' },
(без «эд» в слове подключено)
это расстраивает, но это было все 😀