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的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
php setcookie函数的参数说明及其用法
Apr 20 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
Dec 20 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
Oct 13 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
php使用curl下载指定大小的文件实例代码
Sep 30 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
Aug 21 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
Sep 09 PHP
php弹出提示框的是实例写法
Sep 26 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 登录记住密码实现思路
2013/05/07 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
PHP实现递归无限级分类
2015/10/22 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
js判断选择时间不能小于当前时间的示例代码
2013/09/24 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
解决Vue+Element ui开发中碰到的IE问题
2018/09/03 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
[53:10]完美世界DOTA2联赛决赛日 FTD vs GXR 第二场 11.08
2020/11/11 DOTA
[48:31]完美世界DOTA2联赛PWL S3 DLG vs Phoenix 第二场 12.17
2020/12/19 DOTA
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
深入了解Python在HDA中的应用
2019/09/05 Python
python入门之井字棋小游戏
2020/03/05 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
Python devel安装失败问题解决方案
2020/06/09 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
经典优秀个人求职信分享
2013/12/12 职场文书
开学寄语大全
2014/04/08 职场文书
学校个人对照检查材料
2014/08/26 职场文书
党员四风问题个人对照检查材料
2014/10/26 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
法定代表人资格证明书
2015/06/18 职场文书