Ich habe versucht, einen MQTT-Broker auf meinem AWS EC2-Server mit dem Port 1883 einzurichten. Bisher funktioniert es mit der ruby-mqtt gem, aber Ich habe Probleme mit der Einrichtung mit Paho Javascript Client für die Website.Einrichten von Paho Javascript Client (MQTT) mit mosquitto auf AWS EC2 Ubuntu + Ruby on Rails
Was ich bisher getan haben:
mosquitto
installiert mosquitto auf meine AWS EC2-Instanz, und es läuft und lauscht auf Port 1883. ich zu einem Thema abonniert lokal mit dem Befehl
mosquitto_sub -h localhost -p 1883 -v -t 'topic1'
AWS EC2 Security Group
erlaubt Verkehr über Port 1883 (unter TCP-Protokoll)
Ruby on Rails
installiert rubin MQTT Juwel und getestet, um die MQTT durch zu arbeiten, den Code unten in Schienen-Konsole ausgeführt wird (Entwicklungsumgebung)
MQTT::Client.connect(ip_address_or_domain_name) do |c|
c.publish('topic1', 'message to topic 1')
end
Die Nachricht wird im Terminal angezeigt, in dem mosquitto_sub
ausgeführt wurde.
Nginx
All dies wurde ohne Konfiguration auf Konfigurationsdateien Nginx getan.
Paho Kunde
So feuerte ich einen lokalen Schienen-Server auf meinem lokalen Computer auf, und das Beispiel Javascript-Schnipsel auf einem meiner HTML-Ansicht laufen.
// 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);
}
Aber ich schalte mich nicht an. Der Fehler, den ich in der Chrome-Entwicklerkonsole erhalte, lautet:
Ich bin nicht sicher, was hier falsch ist. Ich schätze jede Hilfe sehr! Danke im Voraus!
Ihre Moskitos to.conf ist unglaublich !! Thx – domih
:) Toll könnte ich helfen – Vic