php 使用ActiveMQ发送消息,与处理消息操作示例


Posted in PHP onFebruary 23, 2020

本文实例讲述了php 使用ActiveMQ发送消息,与处理消息操作。分享给大家供大家参考,具体如下:

我们以一个简单的用户注册为例,当用户点击注册按钮后,我们发送一个消息,后台php接收到该消息然后处理。

1.php代码如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');

$obj = new Stdclass();
//下面这些数据,实际中是用户通过前端页面post来的,这里只做演示
$obj->username = 'test';
$obj->password = '123456';
//发送一个注册消息到队列,我们这里模拟用户注册
$stomp->send('/queue/userReg', json_encode($obj));

2.php代码如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');
//订阅只对一个有效,如果启动多个脚本,只有一个会接收到消息
$stomp->subscribe('/queue/userReg');

while(true) {
 //判断是否有读取的信息
 if($stomp->hasFrame()) {
  $frame = $stomp->readFrame();

  $data = json_decode($frame->body, true);
  var_dump($data);

  //我们通过获取的数据
  //处理相应的逻辑,比如存入数据库,发送验证码等一系列操作。
  //$db->query("insert into user values('{$username}','{$password}')");
  //sendVerify();

  //表示消息被处理掉了,ack()函数很重要
  $stomp->ack($frame);
 }
 sleep(1);
}

分别运行上面两个脚本文件

> /data/php56/bin/php 1.php
> /data/php56/bin/php 2.php

php 使用ActiveMQ发送消息,与处理消息操作示例

我们还可以把上面的2.php代码分成多步执行。

2.php代码如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');
$stomp->subscribe('/queue/userReg');

while(true) {
 //判断是否有读取的信息
 if($stomp->hasFrame()) {
  $frame = $stomp->readFrame();

  $data = json_decode($frame->body, true);

  //注册信息入库
  //$ret = db->query("insert into user values('{$data['username']}', '{$data['password']}')");
  //这里演示直接设成true了
  $ret = true;
  if($ret) {
   echo $data['username'], '入库成功', PHP_EOL;
   //如果入库成功,再次把数据发送到另一个消息队列中,进行下一步处理
   $stomp->send('/queue/sendVerify', $frame->body);

   $stomp->ack($frame);
  }
 }
 sleep(1);
}

3.php代码如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');
$stomp->subscribe('/queue/sendVerify');

while(true) {
 //判断是否有读取的信息
 if($stomp->hasFrame()) {
  $frame = $stomp->readFrame();

  $data = json_decode($frame->body, true);

  //$ret = sendVerify()发送验证码,实际中应该是请求某接口
  $ret = true;
  if($ret) {
   echo $data['username'], '发送验证码成功', PHP_EOL;

   $stomp->ack($frame);
  }
 }
 sleep(1);
}

再次分别运行上面的三个脚本

> /data/php56/bin/php 1.php
> /data/php56/bin/php 2.php
> /data/php56/bin/php 3.php

php 使用ActiveMQ发送消息,与处理消息操作示例

php 使用ActiveMQ发送消息,与处理消息操作示例

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
php中文件上传的安全问题
Oct 09 PHP
PHP开发者常犯的10个MySQL错误更正剖析
Jan 30 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
destoon文章模块调用企业会员资料的方法
Aug 22 PHP
跟我学Laravel之安装Laravel
Oct 15 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
php实现encode64编码类实例
Mar 24 PHP
WIFI万能钥匙密码查询接口实例
Sep 28 PHP
php表单加入Token防止重复提交的方法分析
Oct 10 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
Jul 21 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 PHP
php实现通过stomp协议连接ActiveMQ操作示例
Feb 23 #PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 #PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 #PHP
php7 图形用户界面GUI 开发示例
Feb 22 #PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
Feb 21 #PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 #PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 #PHP
You might like
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
PHP的面试题集
2006/11/19 PHP
JQuery 写的个性导航菜单
2009/12/24 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
纯CSS3代码实现滑动开关效果
2015/08/19 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
移动端横屏的JS代码(beta)
2016/05/16 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
JS实现放烟花效果
2020/03/10 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
[01:29]2014DOTA2展望TI 剑指西雅图DK战队专访
2014/06/30 DOTA
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
Python中return语句用法实例分析
2015/08/04 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
numpy返回array中元素的index方法
2018/06/27 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
2019/01/29 Python
Python3加密解密库Crypto的RSA加解密和签名/验签实现方法实例
2020/02/11 Python
python打开文件的方式有哪些
2020/06/29 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
用python爬虫批量下载pdf的实现
2020/12/01 Python
Skyscanner波兰:廉价航班
2017/11/07 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
应届毕业生个人求职自荐信
2014/01/06 职场文书
四川成都导游欢迎词
2014/01/18 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
2015年业务工作总结范文
2015/04/10 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
Spring Boot配合PageHelper优化大表查询数据分页
2022/04/20 Java/Android