python实现jms客户端(发送接收消息)

首先,下载python关于stomp协议的支持包stomppy,下载地址:http://code.google.com/p/stomppy/downloads/list.

下载后解压并进入到其根目录下执行setup.py文件进行安装,安装的命令为python setup.py install.

我使用的消息中间件为apache 的ActiveMQ,需配置ActiveMQ支持stomp协议,配置的方法如下:

进入到activeMQ的配置文件夹conf下找到activemq.xml配置文件,

在<transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/>

后添加以下内容:

<transportConnector name="stomp" uri="stomp://localhost:61613?maximumConnections=1000&amp;wireformat.maxFrameSize=104857600"/>

这样ActiveMQ就启用了stomp协议。

简单介绍下stomp,stomp是一种简单、实现容易的协议,因此支持非常广泛,这里采用Stomp协议的主要原因也是因为其支持的客户端开发语言最多,在各种环境下都有用武之地。这些开发语言主要包括:
 ActionScript 3
 C
 C++
 .Net
 Delphi
 Perl
 PHP
 Python
 Ruby

这里我是使用了python来实现jms客户端,用于发送接收消息。

具体代码如下:

发送消息客户端mq_send.py:

import stomp
import time

dest="/queue/test"
try:
	conn=stomp.Connection([('127.0.0.1',61613)])
	print "connection"
	conn.start()
	print "start"
	conn.connect(wait=True)
	print "connected"
	conn.send('123456789',destination=dest,headers={'type':'textMessage','persistent':'true'},ack='auto')
	print "send"
	time.sleep(2)
	print "sleep"
	conn.disconnect()
	print "disconnect"
except Exception ,e:
	print '===============',e

提示:在消息头部headers添加persistent:true则代表持久化消息


接收消息客户端mq_receiver.py:

import time
import sys

import stomp

class MyListener(object):
	def on_error(self,headers,message):
		print 'received an error %s' % message
	def on_message(self,headers,message):
		print 'received a message %s' % message

dest='/queue/test'
conn=stomp.Connection([('127.0.0.1',61613)])
conn.set_listener('',MyListener())
conn.start()
conn.connect(wait=True)

conn.subscribe(destination=dest,ack='auto')

while True:
	try:
		time.sleep(1)
	except:
		break

conn.disconnect()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值