java zmq订阅_从ZMQ PUB套接字获取订户过滤器
使用 zmq.XPUB 套接字類型,有一種方法可以檢測新用戶和離開用戶 . 以下代碼示例顯示了如何:
# Publisher side
import zmq
ctx = zmq.Context.instance()
xpub_socket = ctx.socket(zmq.XPUB)
xpub_socket.bind("tcp://*:%d" % port_nr)
poller = zmq.Poller()
poller.register(xpub_socket)
events = dict(poller.poll(1000))
if xpub_socket in events:
msg = xpub_socket.recv()
if msg[0] == b'\x01':
topic = msg[1:]
print "Topic '%s': new subscriber" % topic
elif msg[0] == b'\x00':
topic = msg[1:]
print "Topic '%s': subscriber left" % topic
請注意, zmq.XSUB 套接字類型的訂閱方式與"normal" zmq.SUB 的方式不同 . 代碼示例:
# Subscriber side
import zmq
ctx = zmq.Context.instance()
# Subscribing of zmq.SUB socket
sub_socket = ctx.socket(zmq.SUB)
sub_socket.setsockopt(zmq.SUBSCRIBE, "sometopic") # OK
sub_socket.connect("tcp://localhost:%d" % port_nr)
# Subscribing zmq.XSUB socket
xsub_socket = ctx.socket(zmq.XSUB)
xsub_socket.connect("tcp://localhost:%d" % port_nr)
# xsub_socket.setsockopt(zmq.SUBSCRIBE, "sometopic") # NOK, raises zmq.error.ZMQError: Invalid argument
xsub_socket.send_multipart([b'\x01', b'sometopic']) # OK, triggers the subscribe event on the publisher
總結
以上是生活随笔為你收集整理的java zmq订阅_从ZMQ PUB套接字获取订户过滤器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java bitset用途_浅谈Java
- 下一篇: java中有hash集合_Java(1.