Я пытался настроить брокера MQTT на моем сервере AWS EC2, используя порт 1883. Пока он работает с ruby-mqtt gem, но У меня возникли проблемы с настройкой его с помощью Paho Javascript Client для веб-сайта.Настройка клиента Paho Javascript (MQTT) с москитом на AWS EC2 Ubuntu + Ruby on Rails
То, что я сделал до сих пор:
Mosquitto
Установленная mosquitto на моем случае AWS EC2, и он работает и прослушивает порт 1883. Я подписался на тему локально с помощью команды
Группаmosquitto_sub -h localhost -p 1883 -v -t 'topic1'
AWS EC2 Security
Разрешить трафик через порт 1883 (по протоколу TCP)
Рубин на Rails
Installed рубинового MQTT камень, и протестировали MQTT работать, выполнив приведенный ниже код в рельсах консоли (среда разработки)
MQTT::Client.connect(ip_address_or_domain_name) do |c|
c.publish('topic1', 'message to topic 1')
end
Сообщение появляется в терминале, где работает mosquitto_sub
.
Nginx
Все это было сделано без каких-либо конфигурации на файлах конфигурации Nginx.
Pāho Клиент
Так я запустил локальный сервер Рельсы на локальном компьютере, и запустить пример Фрагмент кода JavaScript на одном из моего зрения HTML.
// Create a client instance
client = new Paho.MQTT.Client("mqtt.hostname.com", Number(1883), "", "clientId")
// set callback handlers
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
// connect the client
client.connect({onSuccess:onConnect});
// called when the client connects
function onConnect() {
// Once a connection has been made, make a subscription and send a message.
console.log("onConnect");
client.subscribe("topic1");
message = new Paho.MQTT.Message("Hello");
message.destinationName = "topic1";
client.send(message);
}
// called when the client loses its connection
function onConnectionLost(responseObject) {
if (responseObject.errorCode !== 0) {
console.log("onConnectionLost:"+responseObject.errorMessage);
}
}
// called when a message arrives
function onMessageArrived(message) {
console.log("onMessageArrived:"+message.payloadString);
}
Но я не могу соединиться. Ошибка, которую я получаю в консоли для создания хрома:
WebSocket connection to 'ws://mqtt.example.com:1883/' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET
Im не уверен, что здесь не так. Большое спасибо за любую помощь! Заранее спасибо!
Ваш москит to.conf потрясающе !! Thx – domih
:) Отлично, я мог бы помочь – Vic