xdas.io.asn.ZMQSubscriber#

class xdas.io.asn.ZMQSubscriber(address)[source]#

Iterator that pulls DataArray chunks from a live ASN ZMQ publisher.

Parameters:

address (str) – ZMQ address of the publisher (e.g. "tcp://localhost:5555").

__init__(address)[source]#

Initialize a ZMQStream object.

Parameters:

address (str) – The address to connect to.

Examples

>>> import time
>>> import threading
>>> import xdas as xd
>>> from xdas.io.asn import ZMQSubscriber
>>> port = xd.io.get_free_port()
>>> address = f"tcp://localhost:{port}"
>>> publisher = ZMQPublisher(address)
>>> da = xd.synthetics.dummy()
>>> chunks = xd.split(da, 10)
>>> def publish():
...     for chunk in chunks:
...         time.sleep(0.001)  # so that the subscriber can connect in time
...         publisher.submit(chunk)
>>> threading.Thread(target=publish).start()
>>> subscriber = ZMQSubscriber(address)
>>> for nchunk in range(10):
...     chunk = next(subscriber)
...     # do something with the chunk

Methods

__init__(address)

Initialize a ZMQStream object.