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中插入当前时间
Apr 06 PHP
PHP 执行系统外部命令 system() exec() passthru()
Aug 11 PHP
php UTF-8、Unicode和BOM问题
May 18 PHP
ThinkPHP文件缓存类代码分享
Apr 22 PHP
PHP使用Mysqli类库实现完美分页效果的方法
Apr 07 PHP
PHP session 会话处理函数
Jun 06 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
PDO::quote讲解
Jan 29 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
laravel框架实现敏感词汇过滤功能示例
Feb 15 PHP
简单的php购物车代码
Jun 05 PHP
php使用event扩展的io复用测试的示例
Oct 20 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操作数组相关函数
2011/02/03 PHP
PHP中strtotime函数使用方法分享
2012/01/10 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
Cropper.js 实现裁剪图片并上传(PC端)
2017/08/20 Javascript
浅析vue-router原理
2018/10/19 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
[02:59]2014DOTA2西雅图国际邀请赛 圆满落幕中国夺冠
2014/07/23 DOTA
vc6编写python扩展的方法分享
2014/01/17 Python
Python实现基于HTTP文件传输实例
2014/11/08 Python
python将图片文件转换成base64编码的方法
2015/03/14 Python
python实现SMTP邮件发送功能
2020/06/16 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
python得到windows自启动列表的方法
2018/10/14 Python
Python pandas用法最全整理
2019/08/04 Python
Flask框架学习笔记之使用Flask实现表单开发详解
2019/08/12 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
体育教育专业自荐信范文
2013/12/20 职场文书
大学毕业后的十年规划
2014/01/07 职场文书
司法局群众路线教育实践活动整改措施
2014/09/17 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
环保建议书作文400字
2015/09/14 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript
关于python中模块和重载的问题
2021/11/02 Python