ich versuche, ein REQ/REP
Muster zu implementieren, mit python3 asyncio und ZeroMQpython3 asyncio ZeroMQ .Connect() blockiert
Mein Klient Asynchron-Funktion:
import zmq
import os
from time import time
import asyncio
import zmq.asyncio
print ('Client %i'%os.getpid())
context = zmq.asyncio.Context(1)
loop = zmq.asyncio.ZMQEventLoop()
asyncio.set_event_loop(loop)
async def client():
socket = context.socket(zmq.REQ)
socket.connect('tcp://11.111.11.245:5555')
while True:
data = zmq.Message(str(os.getpid()).encode('utf8'))
start = time()
print('send')
await socket.send(data)
print('wait...')
data = await socket.recv()
print('recv')
print(time() - start, data)
loop.run_until_complete(client())
Wie ich verstehe, wird der Anruf an eine socket.connect("tcp://11.111.11.245:5555")
Methode ist eine Blockierungsmethode.
Wie mache ich eine nicht blockierende Verbindung, in meinem Fall?