python 发送和接收ActiveMQ消息的实例


Posted in Python onJanuary 30, 2019

ActiveMQ是java开发的消息中间件服务。可以支持多种协议(AMQP,MQTT,OpenWire,Stomp),默认的是OpenWire。而python与ActiveMQ的通信使用的是Stomp协议。而如果你的服务没有开启则需要配置开启。

首先需要安装python的stomp库。

命令如下:

pip install stomp.py

接着,就是上代码了具体如下:

# -*-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消息的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用ElementTree解析XML示例
Jun 02 Python
python使用str & repr转换字符串
Oct 13 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
对python文件读写的缓冲行为详解
Feb 13 Python
Python实现合并excel表格的方法分析
Apr 13 Python
使用python搭建服务器并实现Android端与之通信的方法
Jun 28 Python
python对绑定事件的鼠标、按键的判断实例
Jul 17 Python
python 控制台单行刷新,多行刷新实例
Feb 19 Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 Python
Python新手学习raise用法
Jun 03 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 #Python
理想高通滤波实现Python opencv示例
Jan 30 #Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 #Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
Jan 30 #Python
对dataframe数据之间求补集的实例详解
Jan 30 #Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 #Python
Pandas统计重复的列里面的值方法
Jan 30 #Python
You might like
ThinkPHP 防止表单重复提交的方法
2011/08/08 PHP
PHP自动补全表单的两种方法
2017/03/06 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
JavaScript事件委托用法分析
2015/01/24 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
在Vue中使用echarts的方法
2018/02/05 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
python传递参数方式小结
2015/04/17 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
使用python3构建文件传输的方法
2019/02/13 Python
python3.x实现base64加密和解密
2019/03/28 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
HTML5标签使用方法详解
2015/11/27 HTML / CSS
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
销售会计工作职责
2013/12/02 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
党员检讨书
2014/10/13 职场文书
新郎结婚保证书
2015/02/26 职场文书
2015年护士节慰问信
2015/03/23 职场文书
nginx实现动静分离的方法示例
2021/11/07 Servers