ActiveMQ是java开发的消息中间件服务。可以支持多种协议(AMQP,MQTT,OpenWire,Stomp),默认的是OpenWire。而python与ActiveMQ的通信使用的是Stomp协议。而如果你的服务没有开启则需要配置开启。
首先需要安装python的stomp库。
命令如下:
1
|
pip install stomp.py |
接着,就是上代码了具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# -*-coding:utf-8-*- import stomp import 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 # 推送到队列queue def 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() ##从队列接收消息 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() |
但是上述只是发送文本类型的消息,除此之外,ActiveMQ还支持MapMessage、ObjectMessage、BytesMessage、和StreamMessage等多个消息类型。
以上这篇python 发送和接收ActiveMQ消息的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/five3/article/details/79569587