Ich baue ein kleines Ruby-Programm, um eine Verbindung zu einem MQTT -Server herzustellen und einen Kanal zu abonnieren. Ich benutze das mosquitto Juwel, das nur eine Brücke für libmosquitto C-Bibliothek.
Ich habe eine sehr einfache Implementierung eines Programms erstellt, das mit ruby my_prog.rb
laufen kann:
Ich habe mich gefragt, ob ich Celluloid oder verwenden möchte EventMachine , um die Loops, die der Mosquitto-Edelstein bietet, auszuführen, wie würde ich es tun?
Der Mückenstein bietet eine gute Dokumentation und stellt einige Schleifenmethoden vor das kann verwendet werden, aber ich habe keine Ahnung, wo ich anfangen oder wie ich es tun soll, noch habe ich jemals EM oder Celluloid verwendet.
Könnte jemand helfen, damit anzufangen, ich denke, dass es der Gemeinschaft einen gewissen Wert bringen könnte, und es könnte als Open-Source-Projekt enden, eine kleine Ergänzung für das Juwel von Mosquitto?
Das em-mqtt
Juwel stellt eine MQTT-Protokollimplementierung für eventmachine bereit.
Dies verwendet die reine Ruby mqtt
Implementierung, um die Nachrichten zu verarbeiten, anstatt libmosquitto
.
Wenn Sie wirklich die libmosquitto
Implementierung für das Parsing über die mosquitto
edel würde dann die obige Abgrenzung gelten. Die eventmachine
-Komponente wird so sein wie sie ist. Alle Aufrufe des protokollspezifischen Moduls MQTT
werden durch das Äquivalent in libmosquitto
ersetzt. Das Hauptproblem scheint zu sein, dass die libmosquitto
public API und die nachfolgende Ruby API verbirgt all dies in libmosquitto
eigener Netzwerkimplementierung, die durch eventmachine
ersetzt wird Sie müssten eine Menge hacken, um Ruby die erforderlichen Methoden zu zeigen, bevor Sie anfangen können.
Tags und Links ruby multithreading io m2m