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 相关文章推荐
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
php数组函数array_walk用法示例
May 26 PHP
PHP中的表达式简述
May 29 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 PHP
实例讲解PHP验证邮箱是否合格
Jan 28 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 PHP
PHP控制循环操作的时间
Apr 01 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
解析ajax事件的调用顺序
2013/06/17 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
基于jquery的滑动样例代码
2010/11/20 Javascript
JS实现div居中示例
2014/04/17 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
angularjs实现分页和搜索功能
2018/01/03 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
Vue不能观察到数组length的变化
2018/06/08 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
[01:32]dota2拉比克至宝(222)
2018/12/20 DOTA
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
Saltstack快速入门简单汇总
2016/03/01 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
linux下python使用sendmail发送邮件
2018/05/22 Python
Python OpenCV图像指定区域裁剪的实现
2019/10/30 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
CSS3实现闪烁动画效果的方法
2015/02/09 HTML / CSS
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
手术室护士自我鉴定
2013/10/14 职场文书
酒店总经理职务说明书
2014/02/26 职场文书
银行贷款承诺书
2014/03/29 职场文书
给老婆道歉的话
2015/01/20 职场文书
《彼得与狼》教学反思
2016/02/20 职场文书
python中sys模块的介绍与实例
2021/04/17 Python