一个Tyo MQ客户端库
tyo-mq-client的Python项目详细描述
tyo mq客户端python
tyo-mq服务器的tyo-mq python客户端。
tyo-mq服务器
请参考[tyo-mq服务器]{https://github.com/tyolab/tyo-mq}/server.js
简而言之,tyo-mq是使用socket.io(webcoket)实现的发布/订阅消息分发服务。
创建消息服务器
varMessageServer=require("tyo-mq").server;varmq=newMessageServer();mq.start();
创建消息生产者和消费者
fromtyo_mq_client.message_queueimportMessageQueuefromtyo_mq_client.socketimportSocketfromtyo_mq_client.loggerimportLoggerfromtyo_mq_client.constantsimportConstantssubscriber=Noneproducer=Noneready=[False,False]mq=MessageQueue()producer=mq.createPublisher("TYO Lab")# A producer can be also a consumersubscriber=producerdefon_message_published(message):print("received message"+json.dumps(message))os._exit(1)defcheck():if(ready[0]andready[1]):producer.produce({"message":"Hello World"})defsubscriber_on_connect():Logger.log("Subscriber is connected")ready[0]=Truesubscriber.subscribe(producer.name,Constants.EVENT_DEFAULT,on_message_published,False)defon_subscription(data):print("received subscription")producer.produce({"message1":"Hello World"})producer.on('test',on_message_published)producer.socket.emit('test')producer.produce({"message2":"Hello World"},producer.eventDefault,Constants.METHOD_BROADCAST)defproducer_on_connect():subscriber_on_connect()Logger.log("Producer is connected")ready[1]=Trueproducer.on_subscription_listener=on_subscriptionproducer.on_subscriber_lost(on_subscriber_lost)defon_subscriber_lost(data):message=json.dumps(data)Logger.log('Informed that connection with a subscriber ('+message["consumer"]+') was lost')producer.add_on_connect_listener(producer_on_connect)producer.connect(-1)