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&amp;&amp;mysql)六
Oct 09 PHP
PHP中ADODB类详解
Mar 25 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
基于PHP异步执行的常用方式详解
Jun 03 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php图片缩放实现方法
Feb 20 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
windows7下php开发环境搭建图文教程
Jan 06 PHP
PHP生成压缩文件实例
Feb 07 PHP
PHP内核探索:哈希表碰撞攻击原理
Jul 31 PHP
PHP数学运算函数大汇总(经典值得收藏)
Apr 01 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
选择PHP作为网站开发语言的原因分享
2012/01/03 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
php基于 swoole 实现的异步处理任务功能示例
2019/08/13 PHP
Yii框架小部件(Widgets)用法实例详解
2020/05/15 PHP
等待指定时间后自动跳转或关闭当前页面的js代码
2013/07/09 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
初识Node.js
2015/03/20 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
JS实现获取来自百度,Google,soso,sogou关键词的方法
2016/12/21 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
jQuery Dom元素操作技巧
2018/02/04 jQuery
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
localstorage实现带过期时间的缓存功能
2019/06/28 Javascript
vue实现简单计算商品价格
2020/09/14 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
详解JavaScript 中的批处理和缓存
2020/11/19 Javascript
Python实现字典依据value排序
2016/02/24 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
selenium获取当前页面的url、源码、title的方法
2019/06/12 Python
python图片二值化提高识别率代码实例
2019/08/24 Python
python网络编程:socketserver的基本使用方法实例分析
2020/04/09 Python
网络安全方面的面试题
2015/11/04 面试题
大学秋游活动方案
2014/02/11 职场文书
八项规定整改方案
2014/02/21 职场文书
先进工作者申报材料
2014/12/23 职场文书
财务人员个人工作总结
2015/02/27 职场文书
周一给客户的问候语
2015/11/10 职场文书
PHP 技巧 * SVG 保存为图片(分享图生成)
2021/04/02 PHP
MySQL实现用逗号进行拼接、以逗号进行分割
2022/12/24 MySQL