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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(3)
Oct 09 PHP
解决CodeIgniter伪静态失效
Jun 09 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
Jul 04 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
php 生成Tab键或逗号分隔的CSV
Sep 24 PHP
使用phpQuery获取数组的实例
Mar 13 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 30 PHP
解决在Laravel 中处理OPTIONS请求的问题
Oct 11 PHP
使用php的mail()函数实现发送邮件功能
Jun 03 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
人大复印资料处理程序_补充篇
2006/10/09 PHP
一些php技巧与注意事项分析
2011/02/03 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
PHP中的socket_read和socket_recv区别详解
2015/02/09 PHP
PHP CURL或file_get_contents获取网页标题的代码及两者效率的稳定性问题
2015/11/30 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
JS响应鼠标点击实现两个滑块区间拖动效果
2015/10/26 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
详解ES6 Promise的生命周期和创建
2019/08/18 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
Python入门之modf()方法的使用
2015/05/15 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
VSCODE配置Markdown及Markdown基础语法详解
2021/01/19 Python
如何保障Web服务器安全
2014/05/05 面试题
工商企业管理应届生求职信
2013/11/03 职场文书
医学类个人求职信范文
2014/02/05 职场文书
求职面试个人自我评价
2014/02/28 职场文书
学生鉴定评语大全
2014/05/05 职场文书
安全检查汇报材料
2014/12/26 职场文书
老龙头导游词
2015/02/11 职场文书
农贸批发市场管理制度
2015/08/07 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js