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 相关文章推荐
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
浅析echo(),print(),print_r(),return之间的区别
Nov 27 PHP
ThinkPHP3.2.2的插件控制器功能简述
Jul 09 PHP
解决yii2左侧菜单子级无法高亮问题的方法
May 08 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php通过各种函数判断0和空
Jul 04 PHP
PHP实现简单计算器小程序
Aug 28 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
Nov 13 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
javascript,php获取函数参数对象的代码
2011/02/03 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
javascript实现微信分享
2014/12/23 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
vue-router二级导航切换路由及高亮显示的实现方法
2019/07/10 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
[01:08:48]LGD vs OG 2018国际邀请赛淘汰赛BO3 第三场 8.25
2018/08/29 DOTA
python字典多条件排序方法实例
2014/06/30 Python
python flask中静态文件的管理方法
2018/03/20 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
Python 转换文本编码实现解析
2019/08/27 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
Python自动创建Excel并获取内容
2020/09/16 Python
高中自我鉴定范文
2013/11/03 职场文书
企业内控岗位的职责
2014/02/07 职场文书
党员干部承诺书
2014/03/25 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
毕业生对母校寄语
2015/02/26 职场文书
思想道德自我评价2015
2015/03/09 职场文书
python中subplot大小的设置步骤
2021/06/28 Python