PythonでZeroMQを操作するための手段は、PyZMQです。ZeroMQは、C++で開発されていますが、PyZMQを使用することでPythonから操作可能になります。
PyZMQとは?
PyZMQは、ZeroMQのPythonバインディングです。ZeroMQは非同期メッセージングを可能にします。PyZMQをインストールすると、ZeroMQもインストールされます。そのため、事前にZeroMQをインストールする必要はありません。
PyZMQのシステム要件
PyZMQの最新バージョンは、22.0.3となります。サポートOSに関しては、Windows, macOS, Linuxを含むクロスプラットフォーム対応です。また、サポート対象となるPythonのバージョンは以下の通りです。
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
PyZMQのインストール
PyZMQのインストールは、以下のコマンドとなります。
pip install pyzmq
PyZMQの動作確認
以下に、ZeroMQの動作確認のためのPythonスクリプトを示します。
# server.py
import time
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
while True:
# Wait for next request from client
message = socket.recv()
print("Received request: %s" % message)
time.sleep(1)
# Send reply back to client
socket.send(b"World")
# client.py
import zmq
context = zmq.Context()
# Socket to talk to server
print("Connecting to hello world server…")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:5555")
# Do 10 requests, waiting each time for a response
for request in range(10):
print("Sending request %s …" % request)
socket.send(b"Hello")
message = socket.recv()
print("Received reply %s [ %s ]" % (request, message))
以上のスクリプトを実行すると、クライアントからのリクエストを受け取り、それに対してレスポンスを返すサーバーが動作します。