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图片加中文水印实现代码分享
Oct 31 PHP
PHP中执行cmd命令的方法
Oct 11 PHP
完美实现wordpress禁止文章修订和自动保存的方法
Nov 03 PHP
PHP图片处理之图片旋转和图片翻转实例
Nov 19 PHP
php构造函数的继承方法
Feb 09 PHP
CodeIgniter钩子用法实例详解
Jan 20 PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 PHP
php版微信小店调用api示例代码
Nov 12 PHP
Laravel构建即时应用的一种实现方法详解
Aug 31 PHP
PHP匿名函数(闭包函数)详解
Mar 22 PHP
php获取小程序码的实现代码(B类接口)
Jun 13 PHP
PHP7移除的扩展和SAPI
Mar 09 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中二维数组排序问题方法详解
2015/08/28 PHP
PHP编写RESTful接口
2016/02/23 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
2016/09/09 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
详解Immutable及 React 中实践
2018/03/01 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
pygame播放音乐的方法
2015/05/19 Python
Python实现统计单词出现的个数
2015/05/28 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
破解安装Pycharm的方法
2018/10/19 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
介绍一下Python下range()函数的用法
2013/11/07 面试题
区域销售主管岗位职责
2014/06/15 职场文书
社保委托书怎么写
2014/08/02 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
德能勤绩廉个人总结
2015/02/14 职场文书
道歉的话语大全
2015/05/12 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
HTTP中的Content-type详解
2022/01/18 HTML / CSS
Java获取字符串编码格式实现思路
2022/09/23 Java/Android