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读写文件的方法(生成HTML)
Nov 27 PHP
深入php self与$this的详解
Jun 08 PHP
php加速器eAccelerator的配置参数、API详解
May 05 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 PHP
通过PHP实现获取访问用户IP
May 09 PHP
PHP生成图表pChart的示例解析
Jul 31 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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配置参数总结
2013/06/14 PHP
php中删除数组的第一个元素和最后一个元素的函数
2015/03/07 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
jquery 防止表单重复提交代码
2010/01/21 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
js学习总结_基于数据类型检测的四种方式(必看)
2017/07/04 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
JS实现随机生成10个手机号的方法示例
2018/12/07 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
2018/01/11 Python
python事件驱动event实现详解
2018/11/21 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
Python定时器线程池原理详解
2020/02/26 Python
python 实现图像快速替换某种颜色
2020/06/04 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
认识深刻的检讨书
2014/02/16 职场文书
给老师的一封建议书
2014/03/13 职场文书
校庆活动策划方案
2014/06/05 职场文书
2014年教师节座谈会发言稿
2014/09/10 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
社区活动总结
2015/02/04 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
董事会决议范本
2015/07/01 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
利用Python实现模拟登录知乎
2022/05/25 Python
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers