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 相关文章推荐
模拟OICQ的实现思路和核心程序(一)
Oct 09 PHP
用php解析html的实现代码
Aug 08 PHP
php中数组首字符过滤功能代码
Jul 31 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
ThinkPHP实现批量删除数据的代码实例
Jul 02 PHP
PHP多线程编程之管道通信实例分析
Mar 07 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
php in_array() 检查数组中是否存在某个值详解
Nov 23 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
Feb 04 PHP
PHP yield关键字功能与用法分析
Jan 03 PHP
php实现记事本案例
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+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
Javascript 函数对象的多重身份
2009/06/28 Javascript
让div层随鼠标移动的实现代码 ie ff
2009/12/18 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
EasyUi datagrid 实现表格分页
2015/02/10 Javascript
浅谈类似于(function(){}).call()的js语句
2015/03/30 Javascript
使用angularjs创建简单表格
2016/01/21 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
Python生成随机密码的方法
2017/06/16 Python
python正则中最短匹配实现代码
2018/01/16 Python
详解Python自建logging模块
2018/01/29 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Django Form 实时从数据库中获取数据的操作方法
2019/07/25 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
如何通过python实现IOU计算代码实例
2020/11/02 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
毕业生自荐信的主要内容
2013/10/29 职场文书
名人演讲稿范文
2013/12/28 职场文书
护士毕业生自荐信
2014/02/07 职场文书
图书馆标语
2014/06/19 职场文书
2014年材料员工作总结
2014/11/19 职场文书
MySQL三种方式实现递归查询
2022/04/18 MySQL