python 发送和接收ActiveMQ消息的实例
ActiveMQ是java开发的消息中间件服务。可以支持多种协议(AMQP,MQTT,OpenWire,Stomp),默认的是OpenWire。而python与ActiveMQ的通信使用的是Stomp协议。而如果你的服务没有开启则需要配置开启。
首先需要安装python的stomp库。
命令如下:
pipinstallstomp.py
接着,就是上代码了具体如下:
#-*-coding:utf-8-*-
importstomp
importtime
queue_name='/queue/SampleQueue'
topic_name='/topic/SampleTopic'
listener_name='SampleListener'
classSampleListener(object):
defon_message(self,headers,message):
print'headers:%s'%headers
print'message:%s'%message
#推送到队列queue
defsend_to_queue(msg):
conn=stomp.Connection10([('127.0.0.1',61613)])
conn.start()
conn.connect()
conn.send(queue_name,msg)
conn.disconnect()
#推送到主题
defsend_to_topic(msg):
conn=stomp.Connection10([('127.0.0.1',61613)])
conn.start()
conn.connect()
conn.send(topic_name,msg)
conn.disconnect()
##从队列接收消息
defreceive_from_queue():
conn=stomp.Connection10([('127.0.0.1',61613)])
conn.set_listener(listener_name,SampleListener())
conn.start()
conn.connect()
conn.subscribe(queue_name)
time.sleep(1)#secs
conn.disconnect()
##从主题接收消息
defreceive_from_topic():
conn=stomp.Connection10([('127.0.0.1',61613)])
conn.set_listener(listener_name,SampleListener())
conn.start()
conn.connect()
conn.subscribe(topic_name)
while1:
send_to_topic('topic')
time.sleep(3)#secs
conn.disconnect()
if__name__=='__main__':
#send_to_queue('len123')
#receive_from_queue()
receive_from_topic()
但是上述只是发送文本类型的消息,除此之外,ActiveMQ还支持MapMessage、ObjectMessage、BytesMessage、和StreamMessage等多个消息类型。
以上这篇python发送和接收ActiveMQ消息的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。