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 date函数参数详解
Nov 27 PHP
自动把纯文本转换成Web页面的php代码
Aug 27 PHP
php读取xml实例代码
Jan 28 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
Jun 12 PHP
destoon整合ucenter后注册页面不跳转的解决方法
Jun 21 PHP
Destoon实现多表查询示例
Aug 21 PHP
php cli配置文件问题分析
Oct 15 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
如何在PHP中使用数组
Jun 09 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输出缓存ob系列函数详解
2014/03/11 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
2013/07/12 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
js实现右键菜单功能
2016/11/28 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
Python中Scrapy爬虫图片处理详解
2017/11/29 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
Pytorch之卷积层的使用详解
2019/12/31 Python
pytorch实现用CNN和LSTM对文本进行分类方式
2020/01/08 Python
Python urllib.request对象案例解析
2020/05/11 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
详解如何使用rem或viewport进行移动端适配
2020/08/14 HTML / CSS
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
学生自我鉴定
2013/12/18 职场文书
主办会计岗位职责
2014/03/13 职场文书
新年爱情寄语
2014/04/08 职场文书
小学语文课后反思精选
2014/04/25 职场文书
会员活动策划方案
2014/08/19 职场文书
行政工作试用期自我评价
2014/09/14 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫
MySQL中一条SQL查询语句是如何执行的
2022/04/08 MySQL