在web开发过程中,我们会使用到队列。先进先出的特点。在最开始接触的是张宴的HTTPSQS,后来在使用Redis的时候,使用过reids作为队列,同时memcache也可以作为队列。今天主要是说一下Apache出品,最流行的,能力强劲的开源消息总线,ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,多种语言和协议客户端。语言: JAVA、C、C++、C#、Ruby、Perl、Python、PHP 。应用协议: OpenWire,Stomp REST等等。默认支持队列是文件存储,它还可以支持队列数据存储到数据库中。
在PHP中主要是说一下STOMP。stomp的官方网站是:http://activemq.apache.org/
第一:stomp是PHP的一个扩展,你可以在linux下编译安装,也可以在window中下载dll文件进行安装
第二:你也可以使用stomp类,不安装PHP扩展。
下载解压之后的文件:
在windows下直接启动服务端,根据自己的系统运行 activemq.bat文件启动服务。
activeMQ自带服务端查看界面,大家可以运行:http://localhost:8161/ 看一下自己的服务端,如图:
然后点击 manage activeMQ broker
然后编写客户端代码:
stomp的相关函数参考地址:http://www.php.net/manual/zh/book.stomp.php
<?php //phpinfo(); //查看STOMP是否加载上 $user = getenv("ACTIVEMQ_USER"); if( !$user ) $user = "admin"; $password = getenv("ACTIVEMQ_PASSWORD"); if( !$password ) $password = "password"; $host = getenv("ACTIVEMQ_HOST"); if( !$host ) $host = "localhost"; $port = getenv("ACTIVEMQ_PORT"); if( !$port ) $port = 61613; //端口 $destination = 'zhl'; //队列名称 $msg = "Hello EveryOne, Welcome to PHP extension Stomp..."; try { $url = 'tcp://'.$host.":".$port; $stomp = new Stomp($url, $user, $password); $result = $stomp->send($destination, $msg); //写信息到队列中 $stomp->subscribe($destination); $result = $stomp->readFrame(); // 查看队列中的信息中第一次插入的信息 var_dump($result); } catch (StompException $e) { echo $e->getMessage(); } ?>
大家可以自己测试一下...