ActiveMQ是java開(kāi)發(fā)的消息中間件服務(wù)。可以支持多種協(xié)議(AMQP,MQTT,OpenWire,Stomp),默認(rèn)的是OpenWire。而python與ActiveMQ的通信使用的是Stomp協(xié)議。而如果你的服務(wù)沒(méi)有開(kāi)啟則需要配置開(kāi)啟。
首先需要安裝python的stomp庫(kù)。
命令如下:
pip install stomp.py
接著,就是上代碼了具體如下:
# -*-coding:utf-8-*-import stompimport time queue_name = '/queue/SampleQueue'topic_name = '/topic/SampleTopic'listener_name = 'SampleListener' class SampleListener(object): def on_message(self, headers, message): print 'headers: %s' % headers print 'message: %s' % message # 推送到隊(duì)列queuedef send_to_queue(msg): conn = stomp.Connection10([('127.0.0.1',61613)]) conn.start() conn.connect() conn.send(queue_name, msg) conn.disconnect() #推送到主題def send_to_topic(msg): conn = stomp.Connection10([('127.0.0.1',61613)]) conn.start() conn.connect() conn.send(topic_name, msg) conn.disconnect() ##從隊(duì)列接收消息def receive_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() ##從主題接收消息def receive_from_topic(): conn = stomp.Connection10([('127.0.0.1',61613)]) conn.set_listener(listener_name, SampleListener()) conn.start() conn.connect() conn.subscribe(topic_name) while 1: send_to_topic('topic') time.sleep(3) # secs conn.disconnect() if __name__=='__main__': # send_to_queue('len 123') # receive_from_queue() receive_from_topic()但是上述只是發(fā)送文本類(lèi)型的消息,除此之外,ActiveMQ還支持MapMessage、ObjectMessage、BytesMessage、和StreamMessage等多個(gè)消息類(lèi)型。
以上這篇python 發(fā)送和接收ActiveMQ消息的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林站長(zhǎng)站。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注