php与activemq,ActiveMQ的PHP、Python客户端

本文详细介绍了如何使用ActiveMQ开源消息服务器与PHP和Python进行集成。首先,你需要在ActiveMQ的配置文件中启用STOMP协议的连接器。接着,对于Python,安装stomppy库并提供一个简单的消息监听示例。在PHP方面,安装STOMP客户端库并展示了一个订阅主题的示例代码。这两个示例涵盖了连接、订阅和消息处理的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ActiveMQ这款开源消息服务器提供了多语言支持,除了一般的Java客户端以外,还可以使用C/C++、PHP、Python、JavaScript(Ajax)等语言开发客户端。最近由于项目需要,需要提供PHP和Python的主题订阅客户端。这里作为总结,列出这两种语言客户端的简单安装和使用。

对于PHP和Python,可以通过使用STOMP协议与消息服务器进行通讯。在ActiveMQ的配置文件activemq.xml中,需要添加以下语句,来提供基于STOMP协议的连接器。

Python

安装Python27,并安装stomppy(http://code.google.com/p/stomppy/)这一客户端库:

81e35b16dffd8738a1144501e347f402.png

基于stomppy访问ActiveMQ的Python代码:

importtime, sys

importstomp

#消息侦听器

classMyListener(object):

defon_error(self, headers, message):

print'received an error %s'% message

defon_message(self, headers, message):

print'%s'% message

#创建连接

conn = stomp.Connection([('127.0.0.1',61613)])

#设置消息侦听器

conn.set_listener('', MyListener())

#启动连接

conn.start()

conn.connect()

#订阅主题,并采用消息自动确认机制

conn.subscribe(destination='/topic/all_news', ack='auto')

PHP

安装PHP5,并安装STOMP的客户端库(http://php.net/manual/zh/book.stomp.php):

tar -zxf stomp-1.0.5.tgz

cd stomp-1.0.5/

/usr/local/php/bin/phpize

./configure --enable-stomp --with-php-config=/usr/local/php/bin/php-config

make

make install

安装完成后,将生成的stomp.so移入php.ini中指定的extension_dir目录下,并在php.ini中添加该客户端库:

extension=stomp.so

访问ActiveMQ的PHP代码:

$topic='/topic/all_news';

/* connection */

try {

$stomp=newStomp('tcp://127.0.0.1:61613');

} catch(StompException $e) {

die('Connection failed: '.$e->getMessage());

}

/* subscribe to messages from the queue 'foo' */

$stomp->subscribe($topic);

/* read a frame */

while(true) {

$frame=$stomp->readFrame();

if($frame!= null) {

echo$frame->body;

/* acknowledge that the frame was received */

$stomp->ack($frame);

}

}

/* close connection */

unset($stomp);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值