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 404错误页面实现代码
Jun 22 PHP
PHP编程函数安全篇
Jan 08 PHP
解析PHP 5.5 新特性
Jul 02 PHP
preg_match_all使用心得分享
Jan 31 PHP
php中动态调用函数的方法
Mar 16 PHP
Smarty模板变量调节器用法分析
May 23 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
PHP二分查找算法示例【递归与非递归方法】
Sep 29 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
Jun 03 PHP
浅析PHP中的 inet_pton 网络函数
Dec 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模板,主要想体现一下思路
2006/12/25 PHP
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
php+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
PHP中有关长整数的一些操作教程
2019/09/11 PHP
js 设置选中行的样式的实现代码
2010/05/24 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
jquery动态添加删除div 具体实现
2013/07/20 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
Javascript基础教程之定义和调用函数
2015/01/18 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
javascript的正则匹配方法学习
2016/02/24 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
2016/10/10 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
浅谈vux之x-input使用以及源码解读
2018/11/04 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
深入理解 ES6中的 Reflect用法
2020/07/18 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
python修改操作系统时间的方法
2015/05/18 Python
Python实现身份证号码解析
2015/09/01 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
python模式 工厂模式原理及实例详解
2020/02/11 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
医学生自荐信范文
2013/12/03 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书
挂牌仪式主持词
2014/03/20 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
小学生教师节演讲稿
2014/09/03 职场文书