ActiveMQ的PHP、Python客户端

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

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

  1. <transportConnectors>
  2. <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
  3. <transportConnector name="stomp" uri="stomp://0.0.0.0:61613"/><!--添加stomp连接器-->
  4. </transportConnectors>

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

基于stomppy访问ActiveMQ的Python代码:

  1. import time, sys
  2. import stomp
  3. #消息侦听器
  4. class MyListener(object):
  5. def on_error(self, headers, message):
  6. print ‘received an error %s‘ % message
  7. def on_message(self, headers, message):
  8. print ‘%s‘ % message
  9. #创建连接
  10. conn = stomp.Connection([(‘127.0.0.1‘,61613)])
  11. #设置消息侦听器
  12. conn.set_listener(‘‘, MyListener())
  13. #启动连接
  14. conn.start()
  15. conn.connect()
  16. #订阅主题,并采用消息自动确认机制
  17. 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代码:

  1. <?php
  2. $topic  = ‘/topic/all_news‘;
  3. /* connection */
  4. try {
  5. $stomp = new Stomp(‘tcp://127.0.0.1:61613‘);
  6. } catch(StompException $e) {
  7. die(‘Connection failed: ‘ . $e->getMessage());
  8. }
  9. /* subscribe to messages from the queue ‘foo‘ */
  10. $stomp->subscribe($topic);
  11. /* read a frame */
  12. while(true) {
  13. $frame = $stomp->readFrame();
  14. if ($frame != null) {
  15. echo $frame->body;
  16. /* acknowledge that the frame was received */
  17. $stomp->ack($frame);
  18. }
  19. }
  20. /* close connection */
  21. unset($stomp);
  22. ?>

本文出自 “学习文档” 博客,请务必保留此出处http://zephiruswt.blog.51cto.com/5193151/1109606

时间: 2024-08-06 11:51:04

ActiveMQ的PHP、Python客户端的相关文章

Redis的Python客户端redis-py的初步使用

1. 安装 sudo pip install redis sudo pip install hiredis Parser可以控制如何解析redis响应的内容.redis-py包含两个Parser类,PythonParser和HiredisParser.默认,如果已经安装了hiredis模块,redis-py会使用HiredisParser,否则会使用PythonParser.HiredisParser是C编写的,由redis核心团队维护,性能要比PythonParser提高10倍以上,所以推荐使

centos 安装百度云/百度网盘Python客户端

通过pip来安装:pip install bypy (支持Python 2.7+, 3.3+) centos 6.5python版本为2.6的,这里我们先要安装python2.7 1.安装 sqlite-devel #yum install sqlite-devel -y 2.安装 Python 2.7 #wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz #tar xf Python-2.7.8.tgz #cd Pytho

python客户端编程

上一篇说了最为底层的用来网络通讯的套接字.有很多基于套接字的一些协议,这些协议构成了当今互联网大多数客户服务器应用的核心 其实这些协议时在套接字上面的进一层封装用来完成特定的应用,这些应用主要包括: 文件传输(FTP, SCP 等) 阅读Usenet 新闻组(NNTP) e-mail 发送(SMTP) 从服务器上下载e-mail(POP3, IMAP)等等 这些协议的工作方式与之前在套接字编程中介绍的客户端/服务器的例子很像 因特网客户端?? 好吧,之前我们实现了两个机器的通信,那因特网呢?其实

中小企业openstack私有云布署实践【19 通过python客户端 启动实例时手工指定固定的IP地址】

还有一种创建方式 是使用py开发工具,调用openstackclient的方法进行创建实例 ,好处就是可随意指定我们要的虚拟机IP地址,需求的场景就是,某天我们需要主动分配一个比较熟知的IP用作某个服务组件 或者某天,你需要打包一个实例的快照,终止实例后,你想通过快照的方式将它恢复为原来的IP,可以使用以下方法. 以win7客户端为例. 先下载安装eclipse 安装 安装 eclipse 的python插件,插件安装方法可自行百度 本机,安装python2.7环境 安装完后,添加python到

SmartFoxServer 2x的python客户端

最近在研究SmartFoxServer 2x,这是一个针对联网游戏的网络开发框架,服务端是基于java netty框架开发的,客户端支持flash,unity, ios, android(java), c++. 等等 就是不支持python 怎么可以少了python呢?于是我把Java的客户端反编译出来,参考着写了一个python 的实现 https://github.com/heliclei/PySmartFox2x 欢迎点赞-- 目前只实现了基本的协议解析,还不支持压缩和加密,只支持conn

使用Python客户端(redis-py)连接Redis--华为云DCS for Redis使用经验

使用Python连接Redis,需要先安装Python以及redis-py,以CentOS为例,介绍redis-py的客户端环境搭建. 第0步:准备工作 华为云上购买1台弹性云服务器ECS(我选了CentOS 6.3),一个分布式缓存实例(DCS for Redis),我选了个单机实例. 注意ECS和缓存实例配置相同的VPC和安全组,确保网络互通. 第1步:安装python和redis-py 如果系统没有自带python,可以使用yum方式安装. yum install python 下载并解压

xmpp的python客户端

看了很多,不是很早不更新了,就是不支持gevent 最终选用了sleekxmpp #!/usr/bin/env python # -*- coding: utf-8 -*- # https://github.com/fritzy/SleekXMPP/tree/develop/examples import sys if "threading" in sys.modules:         print ("threading module loaded before patc

RedisCluster 的 Java 和 Python 客户端 API 使用示例

这里的环境仍然采用 [Redis Cluster 的安装与配置] 中最终的集群配置环境,具体如下: 127.0.0.1:7000> cluster nodes 8868592d98d84b7cf5752cc0b97af4ac807d1a12 127.0.0.1:7007 slave bfc910f924d772fe03d9fe6a19aabd73d5730d26 0 1410882113063 8 connected f5bdda1518cd3826100a30f5953ed82a5861ed4

MongoDB的Python客户端PyMongo(转)

原文:https://serholiu.com/python-mongodb 这几天在学习Python Web开发,于是做准备做一个博客来练练手,当然,只是练手的,博客界有WordPress这样的好玩意儿,何必还自己造车呢?决定使用Tornado这个框架,然后数据库方面决定顺便熟悉一下MongoDB这样的非关系型数据库.Python让我觉得轻松,再和MongoDB搭配上,那感觉真是好. 下面就谈谈Python操作MongoDB的一些基本用法,先介绍一下MongoDB,这是现在风头正劲的NoSQL