ZeroMQ auf Raspberry Pi, Ihre Systeme zu binden

Achtung : Dieser Artikel wurde automatisch von Bing Translate übersetzt

Wir sahen bereits wie den Message Broker installieren RabbitMQ. Hier werden Sie in der Lage, den Makler zu installieren, der geht, Multi-Plattform : ZeroMQ.

Logo

Die Ziele eines Anbieters von Nachrichten, Es gibt eine schöne Theorie :

  • Verkehr zu vereinfachen
  • Übermitteln einer Nachricht an einen oder mehrere Empfänger
  • Informationen von einem Remoteserver anfordern
  • Publikationen abonnieren
  • Nachrichten für die Interoperabilität der Systeme zu transformieren

Was ist schön mit ZeroMQ, dass zusätzlich zu diesen Features zu bieten, Es ist Cross-Plattform (Windows, Mac, Linux, iOS, Android, und so weiter.), in den meisten einsetzbar 40 Programmiersprachen, ist schnell und kann auf Systemen mit wenig Arbeitsspeicher ausgeführt. Also der Raspberry Pi ! Und es ist weit Wert den Preis eines IBM Websphere-Integration-Busses da es Open Source !

Zu verstehen, alle Funktionen, die von ZeroMQ angeboten, Ich lade Sie zu sehen Diesen link Was erklärt die wichtigsten Funktionen.

ZeroMQ-Functions

Daher schlage ich vor, Einrichten eines Client-Servers einfach zu veranschaulichen die Verwendung von ZeroMQ. Installieren Sie also des Brokers auf der Raspberry Pi zunächst. Unsere Server werden :

  1. Aktualisierung des Systems
    apt - get Update && apt - Get Upgrade y
  2. Installieren Sie die Pakete zum Kompilieren benötigt
    Install apt - Get install-y g    machen Autoconf Automake, Libtool
  3. Laden Sie die neueste version (4.0.3 zum Zeitpunkt des Schreibens)
    Wget-http://Download.zeromq.org/zeromq-4.0.3.tar.gz
  4. Entpacken Sie das Archiv
    tar-Zxvf Zeromq - 4.0.3.tar.gz
  5. Kompilieren und installieren ZeroMQ
    CD Zeromq-4.0.3. / configure make Ldconfig installieren

Sie hier mit Ihrer gebrauchsfertigen ZeroMQ. Oder fast. Bleibt das Programm zur Verwaltung von Ihrem Handel zu implementieren.

Ich schlage vor, einen einfachen Server im Python

  1. Seite Raspberry Pi, der server, Wir installieren die “Bindung” in Python, also in der Tat die Bibliothek, die Ihnen erlaubt, ZeroMQ über Python-Programmen zu verwenden.
    sudo apt-Get Install Python-Pip Pip Python-All-Dev installieren pyzmq
  2. Hier ist die Quelle des Programms, welches der Server. Alors j'Espère Que Les Commentaires Sont Assez Clairs :
    #!/Usr/bin/Env python
    # Importieren Sie Basis-Packages Import os Import Sys Import Zeit
    # Importieren Sie ZeroMQ Paket Import Zmq print "Pi Home Server ZeroMQ Server starten"
    # Initialisieren der ZeroMQ Kontext Kontext = Zmq.Kontext()
    # Konfigurieren von ZeroMQ zum Senden von Nachrichten Zmq_send = context.socket(Zmq.PUB)
    # Die Kommunikation erfolgt auf Sockel 1111
    zmq_send.Bind("TCP://*:1111")
    Drucken "Senden von Nachrichten über tcp://*:1111"
    # Konfigurieren ZeroMQ Empfang von Nachrichten Zmq_recv = context.socket(Zmq.SUB)
    # Die Kommunikation erfolgt auf Sockel 1112
    zmq_recv.Bind("TCP://*:1112")
    zmq_recv.setsockopt(Zmq.ABONNIEREN, '')  # Abonnieren Sie alles drucken "Empfangen von Nachrichten über tcp://*:1112"
    Drucken "Pi Home Server ZeroMQ Server mit !"
    Während wahr:
        Nachricht = keine Antwort = None
        # Befehl für eine eingehende Nachricht warten, versuchen:
            # Die Nachricht und einzulagern Nachricht = zmq_recv.recv()
            Drucken "Empfangene Nachricht : " + Meldung außer Zmq.ZMQError wie äh:
            Drucken "Der Server hat die folgende Fehlermeldung erhalten : " + Str(Err)
        # Wenn eine Nachricht empfangen wurde Nachricht:
            Antwort = str(int(Nachricht) * 2)
            versuchen Sie:
    	    Drucken "Antwort senden : " + Antwort zmq_send.send(Antwort)
            außer Zmq.ZMQError wie äh:
                Drucken "Fehler beim Senden der Antwort : " + Str(Err)
    # In der Theorie erreicht nie ...
    zmq_send.Close()
    zmq_recv.Close()
    Context.Term()
    Drucken "Der Server wurde geschlossen !"

Seite client, Ich entschied mich, es zu tun auf meinem Mac, in Python noch (Java, die ich nicht geschafft haben, um es zu kompilieren, wie ich wollte). Für diese :

  1. Python installieren
  2. Installieren PyZMQ
    Sudo Easy_install pyzmq
  3. Et Voici la Partie Client :
    #!/Usr/bin/Env Python import os Import Sys Import Zeit Import Zmq Kontext = Zmq.Kontext()
    # Konfigurieren von ZeroMQ zum Senden von Nachrichten Zmq_recv = context.socket(Zmq.SUB)
    # Die Kommunikation erfolgt auf Sockel 1111
    zmq_recv.Connect("TCP://192.168.1.33:1111")
    # Konfigurieren ZeroMQ Empfang von Nachrichten Zmq_send = context.socket(Zmq.PUB)
    # Die Kommunikation erfolgt auf Sockel 1112
    zmq_send.Connect("TCP://192.168.1.33:1112")
    zmq_recv.setsockopt(Zmq.ABONNIEREN, '')
    Drucken "Pi-Home Server ZeroMQ-Client ausgeführt wird !"
    Während wahr:
        Drucken "Eingabewert schicken : "
        Nachricht = Raw_input().Streifen()
        Wenn Nachricht:
            versuchen Sie:
                Drucken "Wert senden : " + Nachricht zmq_send.send(Nachricht)
            außer Zmq.ZMQError wie äh:
                Drucken "Fehler beim Senden des Werts " + Nachricht + " : " + Str(Err)
        versuchen Sie:
            Incoming_message = zmq_recv.recv()
            Drucken "Wert vom Server empfangen : " + Incoming_message außer Zmq.ZMQError wie äh:
            Drucken "Fehlermeldung: ' + Str(Err)

Daher erwartet der Server einen Wert, multipliziert mit 2 und das Ergebnis an den Client zurückgibt. Ja, das ist sehr nützlich, ich weiß … C’est l’intention qui compte 🙂

ZeroMQ client

Das Ergebnis des Clients ZeroMQ

ZeroMQ server

Das Ergebnis des Servers ZeroMQ

Das ist also der Hauptgrundsatz. Dieses System kann sehr bequem, Ihre Systeme zu verbinden sein., Zentralisieren Sie Behandlungen, etc.. Es ist schnell und sehr einfach zu implementieren.

Zögern Sie nicht, Ihre Ideen von Anwendungen zu Hause oder sogar in eine professionelle Einstellung zu teilen !

Weitere Informationen und Beispiele Hier.

Sie können auch mögen....

Handpicked links

disk Page Caching using disk: enhanced Database Caching 183/439 queries in 0.233 seconds using disk Served from: pihomeserver.fr @ 2017-07-25 03:33:43 by W3 Total Cache -->