def test_zmsg(): m = zmsg.new() foo = zframe.new('foo') zmsg.push(m, foo) assert zmsg.first(m) == foo bar = zframe.new('bar') zmsg.push(m, bar) assert zmsg.first(m) == bar assert zmsg.last(m) == foo zmsg.append(m, zframe.new('ding')) assert zframe.data(zmsg.last(m)) == 'ding' ctx = zctx.new() p = zsocket.new(ctx, zmq.PUB) u = zsocket.new(ctx, zmq.SUB) zsockopt.set_subscribe(u, '') zsocket.bind(p, 'inproc://qer') zsocket.connect(u, 'inproc://qer') zmsg.send(m, p) zsocket.poll(u, 1) n = zmsg.recv(u) assert zmsg.size(n) == 3 assert zframe.data(zmsg.next(n)) == 'bar' assert zframe.data(zmsg.next(n)) == 'foo' assert zframe.data(zmsg.next(n)) == 'ding' assert zmsg.next(n) is None
def test_zbeacon(): ctx = zctx.new() # Create a service socket and bind to an ephemeral port service = zsocket.new(ctx, zmq.PUSH) port_nbr = zsocket.bind(service, "inproc://foo") # Create beacon to broadcast our service announcement = str(port_nbr) service_beacon = zbeacon.new(ctx, 9999) zbeacon.set_interval(service_beacon, 100) zbeacon.publish(service_beacon, announcement) # Create beacon to lookup service client_beacon = zbeacon.new(ctx, 9999) zbeacon.subscribe(client_beacon, '') # Wait for at most 1/2 second if there's no broadcast networking beacon_socket = zbeacon.socket(client_beacon) zsocket.set_rcvtimeo(beacon_socket, 500) ipaddress = zstr.recv(beacon_socket) content = zframe.recv(beacon_socket) received_port = int(zframe.data(content)) assert received_port == port_nbr zframe.destroy(content) del service_beacon del ctx
def test_zbeacon(): ctx = zctx.new() # Create a service socket and bind to an ephemeral port service = zsocket.new(ctx, zmq.PUB) port_nbr = zsocket.bind(service, "tcp:#*:*") # Create beacon to broadcast our service announcement = str(port_nbr) service_beacon = zbeacon.new(9999) zbeacon.set_interval(service_beacon, 100) zbeacon.publish(service_beacon, announcement) # Create beacon to lookup service client_beacon = zbeacon.new (9999) zbeacon.subscribe(client_beacon, '') # Wait for at most 1/2 second if there's no broadcast networking zsockopt.set_rcvtimeo(zbeacon.socket(client_beacon), 500) ipaddress = zstr.recv(zbeacon.socket(client_beacon)) if ipaddress: content = zframe.recv(zbeacon.socket(client_beacon)) received_port = int(zframe.data(content)) assert received_port == port_nbr zframe.destroy(content)
def test_zmsg(): m = zmsg.new() foo = zframe.new('foo') zmsg.push(m, foo) assert zmsg.first(m) == foo bar = zframe.new('bar') zmsg.push(m, bar) assert zmsg.first(m) == bar assert zmsg.last(m) == foo zmsg.append(m, zframe.new('ding')) # dup and mutate the buffer view d = zframe.dup(zmsg.last(m)) assert zframe.data(d)[:] == 'ding' zframe.data(d)[1] = 'o' assert zframe.data(d)[:] == 'dong' assert zframe.size(d) == 4 zmsg.append(m, d) ctx = zctx.new() p = zsocket.new(ctx, zmq.PUB) u = zsocket.new(ctx, zmq.SUB) zsocket.set_subscribe(u, '') zsocket.bind(p, 'inproc://qer') zsocket.connect(u, 'inproc://qer') zmsg.send(m, p) zsocket.poll(u, 1) n = zmsg.recv(u) assert zmsg.size(n) == 4 assert zframe.data(zmsg.next(n))[:] == 'bar' assert zframe.data(zmsg.next(n))[:] == 'foo' assert zframe.data(zmsg.next(n))[:] == 'ding' assert zframe.data(zmsg.next(n))[:] == 'dong' assert zmsg.next(n) is None zmsg.destroy(n)
def bytes(self): return zframe.data(self.frame)[:]