1、zmq介绍:创建和销毁套接字:zmq.socket(), zmq.close()配置和读取套接字:zmq.setsockopt(), zmq.getsockopt()为套接字建立连接:zmq.bind(), zmq.connect()发送和接收消息: zmq.send(), zmq.recv()注:使用zmq.bind()连接的节点称之为服务端,它有着一个较为固定的网络地址;使用zmq.connect()连接的节点称为客户端,其地址不固定。2、zmq消息模式:主要有三种常用模式: req/rep(请求答复模式):主要用于远程调用及任务分配等。 pub/sub(订阅模式): 主要用于数据分发。 push/pull(管道模式): 主要用于多任务并行。3、zmq内置的有效绑定对:PUB and SUBREQ and REPREQ and XREPXREQ and REPXREQ and XREPXREQ and XREQXREP and XREPPUSH and PULLPAIR and PAIR4、具体消息模式举例(1)、req/rep(请求/答复模式):一对一模式,一问一答#server服务端import zmqcontext=zmq.Context()socket=context.socket(zmq.REP) #设置socket的类型,zmq.REP答复socket.bind(“tcp://*:15000”) #绑定服务端的IP和端口while True: #循环接收客户端发来的消息 message=socket.recv() #接收客户端发送来的消息,注:是byte类型 print(message) socket.send_string(“copy!”) #再发回客户端消息结果:客户单没请求一次就打印一次消息体b’request’b’request’b’request’b’request’#client客户端import zmq, syscontext = zmq.Context()socket=context.socket(zmq.REQ) #设置socket类型,请求端socket.connect(“tcp://localhost:15000”) #连接服务端的IP和端口while True: data=input(“input your request:”) if data == “q”: sys.exit() socket.send_string(data) #向服务端发送消息 message=socket.recv() #接收服务端返回的消息,注:是byte类型 print(message)”””结果:没输入请求一次,就得到服务端的一次返回input your data:123b’copy!’input your data:456b’copy!'”””(2)、pub/sub(订阅模式):一对多模式一个发布者,多个订阅者,订阅者可以通过设置过滤器过滤数据。#publisher发布者import zmqcontext=zmq.Context()socket=context.socket(zmq.PUB)socket.bind(“tcp://*:15000”)while True: data = input(“input your data:”) print(data) socket.send_string(data)”””结果:循环提示输入数据,当输入一次,就发送一次到订阅者input your data:123123input your data:456456input your data:789789input your data:”””#Subscriber订阅者import sysimport zmqcontext=zmq.Context()socket=context.socket(zmq.SUB)socket.connect(“tcp://localhost:15000″)socket.setsockopt_string(zmq.SUBSCRIBE,”)或者:socket.setsockopt_string(zmq.SUBSCRIBE,’123′) #表示只过滤出收到消息为’123’的消息或者:socket.subscribe(‘topic’) #订阅一个主题while True: message=socket.recv() print(message)”””结果:发布者每发布一次,都能订阅到b’123’b’456’b’789′”””(3)、push/pull(管道模式):管道是单向的,从PUSH端单向的向PULL端单向的推送数据流。由三部分组成,push进行数据推送,work进行数据缓存,pull进行数据竞争获取处理。区别于Publish-Subscribe存在一个数据缓存和处理负载。当连接被断开,数据不会丢失,重连后数据继续发送到对端。#推送端import zmqcontext=zmq.Context()socket=context.socket(zmq.PUSH) #设置socket类型PUSH推送socket.bind(“tcp://*:5557”) #绑定IP和端口while True: data=input(“input your data:”) socket.send_string(data)”””input your data:123input your data:456input your data:789″””#worker端import zmqcontext=zmq.Context()socket_receive=context.socket(zmq.PULL) #设置socket类型PULL拉取推送端的消息socket_receive.connect(“tcp://localhost:5557”) #连接推送端IP和端口socket_sender=context.socket(zmq.PUSH) #再设置一个socket类型PUSH推送socket_sender.connect(“tcp://localhost:5558”) #连接IP和端口向其推送消息while True: data=socket_receive.recv_string() #拉取接收消息 print(data) socket_sender.send_string(data) #再将消息推送出去”””123456789″””#拉取端import zmqcontext=zmq.Context()socket=context.socket(zmq.PULL) #设置socket类型PULL拉取消息socket.bind(“tcp://*:5558″) #绑定IP和端口去拉取消息while True: message=socket.recv_string() print(message)”””123456789″””
相关推荐
刘畊宏回应梅西输球后哭了:跳操流汗到眼睛 刚好有点流鼻水
11月23日,刘畊宏发言回应自己再梅西输球后流泪的消息,他写道:“我是有些难过… 然后…跳操流汗到眼睛,刚好有点流鼻水,阿根廷之后的比赛会赢的!”据悉,11月22日的世界杯比赛中,…
2022年11月26日0英雄联盟手游好玩吗(英雄联盟手游好玩还是端游好玩)
简要回答 非常好玩,英雄联盟手游这款游戏已经正式的进行公测,这款游戏是以5v5为模式进行对战的,它是以英雄联盟端游为原型进行开发,里面的每一种玩法基本都沿袭了端游的特点。 01 这…
2022年11月25日0EDG粉丝酸了!JDG重磅官宣,顶级打野Kanavi留在LPL赛区
2022英雄联盟职业联赛冬季转会期已经于11月22日拉开帷幕,在转会期首日作为LPL观众关注的焦点的JDG战队,就官宣了Yagao离队以及Homme续约的消息,这让人十分意外。毕竟…
2022年11月25日0什么是推广cpa一篇文章带你看懂CPA推广渠道
CPA渠道 CPA指的是按照指定的行为结算,可以是搜索,可以是注册,可以是激活,可以是搜索下载激活,可以是绑卡,实名认证,可以是付费,可以是浏览等等。甲乙双方可以根据自己的情况来定…
2022年11月25日0贾乃亮的消息的最新动态(贾乃亮终于又宣布好消息)
本以为贾乃亮与李小璐官宣离婚后的画风,该是“一别两宽,各生欢喜”。 谁知却是“剪不断,理还乱”,八卦传闻比离婚前还多。 最近,就有不少新闻报道称,贾乃亮和李小璐又决定为了女儿复合。…
2022年11月25日0抖音直播带货有哪些方法技巧(抖音直播带货有哪些痛点)
如今抖音这个短视频的变现能力越来越突显了,尤其是在平台上开通直播,更具有超强的带货属性,已经有越来越多的普通人加入到其中了。不过直播带货虽然很火,但是也不是每个人都能做好的,那么在…
2022年11月24日0不止《阿凡达》 网传海贼王新电影《RED》引进大陆:12月1日上映
11月23日消息,20世纪影业官方正式宣布《阿凡达2:水之道》中国内地正式定档,12月16日同步北美上映。 好消息不止一个,据博主“海贼王公会”爆料:海贼王新剧场版《RED》,中译…
2022年11月24日0明查|美国新冠后遗症患者中有16%症状严重以致无法工作?
点击进入澎湃新闻全球事实核查平台 速览 – 网传数据比例无权威信源佐证,该比例有可能是结合了美国疾病防控中心和布鲁金斯学会的数据得出,但这两个机构的调研目的和样本都不同…
2022年11月24日0大疆发布DJI O3 Air Unit图传解决方案 售价1499元
大疆日前发布了最新的DJI O3 Air Unit 数字图传解决方案,该方案将DJI O3+ 图传与1/1.7 英寸影像传感器相机模块集于一身,具有高画质、低延时、远距离等特点。 …
2022年11月23日0再见Kanavi?被告上法庭!韩媒爆料:违规接触JDG,散布虚假消息
最近关于JDG的转会消息特别多,尤其是在doinb爆料Kanavi大概率和JDG续约,并且JDG要买下Ruler之后,很多人都期待明年JDG的银河战队可以打出好的成绩。但是没想到最…
2022年11月23日0