2020-10-28
php ActiveMQ的安装与使用方法图文教程

php ActiveMQ的安装与使用方法图文教程

本文实例讲述了php ActiveMQ的安装与使用方法。分享给大家供大家参考,具体如下: 一、ActiveMQ是什么? ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。支持多种语言客户端(Java,C,C++,C#,Python,Ruby,Perl,PHP), 支持多种协议(OpenWire,Stomp REST,WS Notification,XMPP,AMQP)。 二、安装jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html 如:jdk-8u121-linux-x64.tar.gz 把JDK放到/data/jdk8下(路径可随意自定义) > tar xf jdk-8u121-linux-x64.tar.gz > mv jdk1.8.0_121 /data/jdk8 > vi /etc/profile export JAVA_HOME=/data/jdk8 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib export PATH=$JAVA_HOME/bin:$PATH > source /etc/profile > java -version 三、安装ActiveMQ http://activemq.apache.org/activemq-5144-release.html 如:apache-activemq-5.14.4-bin.tar.gz > tar xf apache-activemq-5.14.4-bin.tar.gz > mv apache-activemq-5.14.4 /data/activemq5 后台的方式启动ActiveMQ > /data/activemq5/bin/activemq start ActiveMQ自带了一个web服务器(jetty) 在conf/jetty.xml里是配置文件 我的虚拟机IP是192.168.1.222 我们通过 http://192.168.1.222:8161/admin 来访问,注意防火墙开放此端口或直接关掉防火墙。 用户名/密码默认为 admin/admin 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP扩展开发教程》、《PHP网络编程技巧总结》、《php curl用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php字符串(string)用法总结》 希望本文所述对大家PHP程序设计有所帮助。 ...
技术教程 900次浏览 0条评论
2020-10-28
php实现通过stomp协议连接ActiveMQ操作示例

php实现通过stomp协议连接ActiveMQ操作示例

本文实例讲述了php实现通过stomp协议连接ActiveMQ操作。分享给大家供大家参考,具体如下: 前面介绍了php ActiveMQ的安装与使用,这里再来讲述一下php通过stomp协议连接ActiveMQ。 一、安装php的stomp扩展 http://pecl.php.net/package/stomp 如:stomp-2.0.0.tgz > tar xf stomp-1.0.9.tgz > cd stomp-1.0.9 > /data/php56/bin/phpize > ./configure --with-php-config=/data/php56/bin/php-config > make && make install 修改php.ini文件 > vi /data/php56/lib/php.ini 注意这里php环境的扩展路径(请自行修改) extension_dir = "/data/php56/lib/php/extensions/no-debug-zts-20131226/" extension=stomp.so 查看扩展是否安装成功 > /data/php56/bin/php -m|grep Stomp 二、使用stomp扩展连接ActiveMQ 我们通过http://192.168.1.222:8161/admin/后台创建一个队列test测试。 并在该test队列中发送一条消息 然后我们通过php获取该队列中的消息,代码如下: <?php try { //61613默认的端口,在ActiveMQ目录conf/activemq.xml文件可查看 $stomp = new Stomp('tcp://192.168.1.222:61613'); } catch (StompException $e) { die('error: ' . $e->getMessage()); } //订阅一个消息队列 $stomp->subscribe('/queue/test'); //读取队列 $frame = $stomp->readFrame(); //输出消息体内容 echo $frame->body, PHP_EOL; 运行上面的代码 > /data/php56/bin/php 1.php 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP扩展开发教程》、《PHP网络编程技巧总结》、《php curl用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php字符串(string)用法总结》 希望本文所述对大家PHP程序设计有所帮助。 ...
技术教程 790次浏览 0条评论
2020-10-28
php 使用ActiveMQ发送消息,与处理消息操作示例

php 使用ActiveMQ发送消息,与处理消息操作示例

本文实例讲述了php 使用ActiveMQ发送消息,与处理消息操作。分享给大家供大家参考,具体如下: 我们以一个简单的用户注册为例,当用户点击注册按钮后,我们发送一个消息,后台php接收到该消息然后处理。 1.php代码如下: <?php $stomp = new Stomp('tcp://192.168.1.222:61613'); $obj = new Stdclass(); //下面这些数据,实际中是用户通过前端页面post来的,这里只做演示 $obj->username = 'test'; $obj->password = '123456'; //发送一个注册消息到队列,我们这里模拟用户注册 $stomp->send('/queue/userReg', json_encode($obj)); 2.php代码如下: <?php $stomp = new Stomp('tcp://192.168.1.222:61613'); //订阅只对一个有效,如果启动多个脚本,只有一个会接收到消息 $stomp->subscribe('/queue/userReg'); while(true) { //判断是否有读取的信息 if($stomp->hasFrame()) { $frame = $stomp->readFrame(); $data = json_decode($frame->body, true); var_dump($data); //我们通过获取的数据 //处理相应的逻辑,比如存入数据库,发送验证码等一系列操作。 //$db->query("insert into user values('{$username}','{$password}')"); //sendVerify(); //表示消息被处理掉了,ack()函数很重要 $stomp->ack($frame); } sleep(1); } 分别运行上面两个脚本文件 > /data/php56/bin/php 1.php > /data/php56/bin/php 2.php 我们还可以把上面的2.php代码分成多步执行。 2.php代码如下: <?php $stomp = new Stomp('tcp://192.168.1.222:61613'); $stomp->subscribe('/queue/userReg'); while(true) { //判断是否有读取的信息 if($stomp->hasFrame()) { $frame = $stomp->readFrame(); $data = json_decode($frame->body, true); //注册信息入库 //$ret = db->query("insert into user values('{$data['username']}', '{$data['password']}')"); //这里演示直接设成true了 $ret = true; if($ret) { echo $data['username'], '入库成功', PHP_EOL; //如果入库成功,再次把数据发送到另一个消息队列中,进行下一步处理 $stomp->send('/queue/sendVerify', $frame->body); $stomp->ack($frame); } } sleep(1); } 3.php代码如下: <?php $stomp = new Stomp('tcp://192.168.1.222:61613'); $stomp->subscribe('/queue/sendVerify'); while(true) { //判断是否有读取的信息 if($stomp->hasFrame()) { $frame = $stomp->readFrame(); $data = json_decode($frame->body, true); //$ret = sendVerify()发送验证码,实际中应该是请求某接口 $ret = true; if($ret) { echo $data['username'], '发送验证码成功', PHP_EOL; $stomp->ack($frame); } } sleep(1); } 再次分别运行上面的三个脚本 > /data/php56/bin/php 1.php > /data/php56/bin/php 2.php > /data/php56/bin/php 3.php 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP扩展开发教程》、《PHP网络编程技巧总结》、《php curl用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php字符串(string)用法总结》 希望本文所述对大家PHP程序设计有所帮助。 ...
技术教程 710次浏览 0条评论
微信二维码