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与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
PHP 存储文本换行实现方法
Jan 05 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
Oct 27 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
二进制交叉权限微型php类分享
Feb 07 PHP
php查询ip所在地的方法
Dec 05 PHP
php给每个段落添加空格的方法
Mar 20 PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 PHP
PHP实现通过URL提取根域名
Mar 31 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 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 has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
php中一个完整表单处理实现代码
2011/11/10 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
PHP 正则表达式小结
2015/02/12 PHP
yii添删改查实例
2015/11/16 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
JS event使用方法详解
2008/04/28 Javascript
IE8 原生JSON支持
2009/04/13 Javascript
jquery弹出框的用法示例(一)
2013/08/26 Javascript
JSON对象 详解及实例代码
2016/10/18 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
2018/06/19 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
element-ui tree结构实现增删改自定义功能代码
2020/08/31 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
python列表每个元素同增同减和列表元素去空格的实例
2019/07/20 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
如何利用python 读取配置文件
2021/01/06 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
Ellos丹麦:时尚和服装在线
2016/09/19 全球购物
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
物流专员岗位职责
2014/02/17 职场文书
信息管理应届生求职信
2014/03/07 职场文书
成绩报告单家长评语
2014/12/30 职场文书
vue ref如何获取子组件属性值
2022/03/31 Vue.js
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL