Client Examples¶
Router-Dealer Client Example¶
import zmq
import json
# Connect to the Router server
context = zmq.Context()
socket = context.socket(zmq.DEALER)
socket.connect("tcp://localhost:7000")
# Submit a task
task = {
"MsgType": "MsgTask",
"SN": 1,
"TaskId": "test-task-001",
"ConvertQProg": "[[{'H': [0]}, {'Measure': [[0]]}]]",
"Configure": {"Shot": 1000}
}
# Send request
socket.send_json(task)
# Receive acknowledgment
ack = socket.recv_json()
print(f"Ack message: {ack}")
# Receive result (asynchronous)
result = socket.recv_json()
print(f"Task result: {result}")
Publish-Subscribe Client Example¶
import zmq
import json
# Connect to the Publish server
context = zmq.Context()
socket = context.socket(zmq.SUB)
socket.connect("tcp://localhost:8000")
# Subscribe to the 'simulator_topic' to receive all messages
socket.setsockopt_string(zmq.SUBSCRIBE, b'simulator_topic')
# Receive status updates
while True:
# Receive topic
topic = socket.recv()
# Receive operation type
operation = socket.recv()
# Receive data
data = socket.recv_json()
print(f"Received message: topic={topic}, operation={operation}")
print(f"Data: {data}")