ZMQ模式详解——发布/订阅模式

一个例子

1.一个服务器负责生成天气相关数据(邮编、温度、湿度),然后将这些数据发布到所有需要知悉天气的客户端;
2.一个客户端需要时刻更新和获取最新的邮政编码,在没有获取之前可默认为纽约地区。
###特点:
1.一个发布者,多个订阅者的关系,1:n;
2.当发布者数据变化时发布数据,所有订阅者均能够接收到数据并处理。
这就是发布/订阅模式。
这里写图片描述
###特别提示
####1.使用SUB设置一个订阅时,必须使用zmq_setsockopt()对消息进行过滤,例如:

# python:
# Subscribe to zipcode, default is NYC, 10001
zip_filter = sys.argv[1] if len(sys.argv) > 1 else "10001"

# Python 2 - ascii bytes to unicode str
if isinstance(zip_filter, bytes):
    zip_filter = zip_filter.decode('ascii')
socket.setsockopt_string(zmq.SUBSCRIBE, zip_filter)
// c++:
//  Subscribe to zipcode, default is NYC, 10001
const char *filter = (argc > 1)? argv [1]: "10001 ";
subscriber.setsockopt(ZMQ_SUBSCRIBE, filter, strlen (filter));

另外值得注意的是:zmq_setsockopt()过滤是根据参数前缀进行过滤的。如下图所示:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值