PHP使用ActiveMQ实例


Posted in PHP onFebruary 05, 2018

使用点对点(Point To Point)模型

点对点模型特点:

  • 只有一个消费者可以接收到消息
  • 不能重复消费

生产者producer.php代码:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp('tcp://47.52.119.21:61613');
  // 2.实例化类
  $obj = new Stdclass();
  // 3.获取数据
  for($i=0; $i<3; $i++){
    $obj->username = 'test';
    $obj->password = '123456';
    $queneName   = "/queue/userReg";
    // 4.发送一个注册消息到队列
    $stomp->send($queneName, json_encode($obj));
  }
} catch (StompException $e) {
  die('Connection failed: ' . $e->getMessage());
}

消费者1consumer1.php代码:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/queue/userReg');

while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

消费者2consumer2.php代码:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/queue/userReg');

while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

执行结果图如下:

PHP使用ActiveMQ实例

使用发布/订阅(Publish Subscribe)模型

发布/订阅模型特点:

多个消费者都可以收到消息
能重复消费
生产者producer.php代码:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp('tcp://47.52.119.21:61613');
  // 2.实例化类
  $obj = new Stdclass();
  // 3.获取数据
  for($i = 0; $i < 3; $i++){
    $obj->username = 'test';
    $obj->password = '123456';
    $queneName   = "/topic/userReg";
    // 4.发送一个注册消息到队列
    $stomp->send($queneName, json_encode($obj));
  }
} catch (StompException $e) {
  die('Connection failed: ' . $e->getMessage());
}

消费者1consumer1.php代码:

<?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/topic/userReg');

while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

消费者2consumer2.php代码:

?php

$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/topic/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

执行结果图如下:

PHP使用ActiveMQ实例

PHP 相关文章推荐
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
Mar 10 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 PHP
yii2实现根据时间搜索的方法
May 25 PHP
PHP 无限级分类
May 04 PHP
PHP钩子与简单分发方式实例分析
Sep 04 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
PDO::beginTransaction讲解
Jan 27 PHP
PHP调用接口API封装的例子
Oct 11 PHP
详解PHP中mb_strpos的使用
Feb 04 #PHP
详解PHP文件的自动加载(autoloading)
Feb 04 #PHP
PHP实现QQ登录的开原理和实现过程
Feb 04 #PHP
PHP实现正则表达式分组捕获操作示例
Feb 03 #PHP
php实现解析xml并生成sql语句的方法
Feb 03 #PHP
PHP删除数组中指定下标的元素方法
Feb 03 #PHP
php学习笔记之mb_strstr的基本使用
Feb 03 #PHP
You might like
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
2007/03/27 Javascript
Expandable &quot;Detail&quot; Table Rows
2007/08/29 Javascript
多浏览器兼容的获取元素和鼠标的位置的js代码
2009/12/15 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
微信小程序 下拉菜单简单实例
2017/04/13 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
python导出hive数据表的schema实例代码
2018/01/22 Python
python和opencv实现抠图
2018/07/18 Python
python学生管理系统
2019/01/30 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
Otticanet意大利:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
华美博弈C/VC工程师笔试试题
2012/07/16 面试题
医学护理系毕业生求职信
2013/10/01 职场文书
毕业生优秀推荐信
2013/11/26 职场文书
门卫工作岗位职责
2013/12/17 职场文书
文明寄语大全
2014/04/11 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
财政局个人总结
2015/03/04 职场文书
开天辟地观后感
2015/06/09 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书