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学习 函数 课件
Jun 15 PHP
一个php短网址的生成代码(仿微博短网址)
May 07 PHP
Laravel框架表单验证详解
Sep 04 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
PHP实现原生态图片上传封装类方法
Nov 08 PHP
PHP简单实现欧拉函数Euler功能示例
Nov 06 PHP
PHP 多任务秒级定时器的实现方法
May 13 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
Jun 25 PHP
PHP开启目录引索+fancyindex漂亮目录浏览带搜索功能
Sep 23 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 PHP
PHP程序守护进程化实现方法详解
Jul 16 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
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
IE 条件注释详解总结(附实例代码)
2009/08/29 Javascript
javascript 闭包疑问
2010/12/30 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
js获取url中&quot;?&quot;后面的字串方法
2014/05/15 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
JS 清除字符串数组中,重复元素的实现方法
2016/05/24 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
Vue如何实现响应式系统
2018/07/11 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
对angular 实时更新模板视图的方法$apply详解
2018/10/09 Javascript
一个因@click.stop引发的bug的解决
2019/01/08 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
vue中keep-alive,include的缓存问题
2019/11/26 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
pandas处理csv文件的方法步骤
2020/10/16 Python
AmazeUI 评论列表的实现示例
2020/08/13 HTML / CSS
日语专业毕业生求职信
2013/12/04 职场文书
kfc实习自我鉴定
2013/12/14 职场文书
道路建设实施方案
2014/03/18 职场文书
倡议书格式范文
2014/04/14 职场文书
超市活动计划书
2014/04/24 职场文书
艺术教育实施方案
2014/05/03 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
大学生安全责任书
2014/07/25 职场文书
党员四风剖析材料
2014/08/27 职场文书
扬州个园导游词
2015/02/06 职场文书
2019公司借款合同范本2篇!
2019/07/24 职场文书
深度好文:50条没人告诉你的人生经验,句句精辟
2019/08/22 职场文书