Как я могу транслировать 4 порта одновременно, используя сокеты zmq, отслеживая, откуда он пришел? - PullRequest
0 голосов
/ 21 ноября 2018

Ниже показано, как в данный момент я транслирую с нескольких портов, проблема в том, что я получаю случайные пакеты, и они не приходят ни на один порт, а на следующий, когда каждый порт непрерывно работает.Как мне перенастроить это, чтобы я мог получать непрерывные пакеты от всех портов?

procname = "STREAM"
URI = json.loads(config.get("Packet_Source", "uri"))
stopic = json.loads(config.get("Packet_Source", "subtopics"))
try:
    context = zmq.Context()
    sock = context.socket(zmq.SUB)
    for uri_rx in URI:
        sock.connect(uri_rx)
        log.debug("Connected to " + str(uri_rx))
    for top in stopic:
        sock.setsockopt_string(zmq.SUBSCRIBE, top)
    log.info('Connected %s socket to RECEIVE data from %s' % ('SUB', str(URI)))
except Exception as e:
    warnings.warn('ZMQ ERROR IN collectstream')
    warnings.warn("[[[%s  ERROR]]]:  %s" % (procname, str(e)))
    warnings.warn('[[[%s]]] connection address: %s' % (procname, str(URI)))
    warnings.warn('Quiting Generator Engine, setting quit.value=True')
    quit.value = True

while not quit.value:
     radio_msg = sock.recv()
...