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 相关文章推荐
第二节--PHP5 的对象模型
Nov 16 PHP
PHP实现MySQL更新记录的代码
Jun 07 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 PHP
PHP实现数据分页显示的简单实例
May 26 PHP
PHP strcmp()和strcasecmp()的区别实例
Nov 05 PHP
YII2 实现多语言配置的方法分享
Jan 11 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
关于php几种字符串连接的效率比较(详解)
Feb 22 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
Oct 24 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中判断文件空目录是否有读写权限的函数代码
2012/08/07 PHP
淘宝ip地址查询类分享(利用淘宝ip库)
2014/01/07 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
.net,js捕捉文本框回车键事件的小例子(兼容多浏览器)
2013/03/11 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
Jquery右下角抖动、浮动 实例代码(兼容ie6、FF)
2013/08/15 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
jQuery EasyUI框架中的Datagrid数据表格组件结构详解
2016/06/09 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
谈谈JavaScript中super(props)的重要性
2019/02/12 Javascript
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
浅谈python socket函数中,send与sendall的区别与使用方法
2017/05/09 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
使用python存储网页上的图片实例
2018/05/22 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
对Python3 序列解包详解
2019/02/16 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
努比亚手机官网:nubia
2016/10/06 全球购物
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
生产内勤岗位职责
2013/12/07 职场文书
司机辞职报告范文
2014/01/20 职场文书
奥巴马胜选演讲稿
2014/05/15 职场文书
材料化学专业求职信
2014/07/15 职场文书
维稳工作情况汇报
2014/10/27 职场文书
2014年政教处工作总结
2014/12/20 职场文书
部门2015年度工作总结
2015/04/29 职场文书
Vue h函数的使用详解
2022/02/18 Vue.js
索尼ICF-5900W收音机测评
2022/04/24 无线电