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 中文和编码判断代码
May 16 PHP
php 短链接算法收集与分析
Dec 30 PHP
第五章 php数组操作
Dec 30 PHP
PHP实现的连贯操作、链式操作实例
Jul 08 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
全面了解PHP中的全局变量
Jun 17 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
Jun 24 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 操作符与控制结构
2012/03/07 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
thinkphp中memcache的用法实例
2014/11/29 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
2019/03/18 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
jQuery列表拖动排列具体实现
2013/11/04 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
js获取url中的参数且参数为中文时通过js解码
2014/03/19 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
微信小程序 数据封装,参数传值等经验分享
2017/01/09 Javascript
JavaScript创建对象的七种方式(推荐)
2017/06/26 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
前端天气插件tpwidget使用方法详解
2019/06/24 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
python 查找文件夹下所有文件 实现代码
2009/07/01 Python
python发送邮件接收邮件示例分享
2014/01/21 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
基于python 等频分箱qcut问题的解决
2020/03/03 Python
快速创建 HTML5 Canvas 电信网络拓扑图的示例代码
2018/03/21 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
化妆品店促销方案
2014/02/24 职场文书
保管员岗位职责
2015/02/14 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
Python基础知识之变量的详解
2021/04/14 Python
python flask开发的简单基金查询工具
2021/06/02 Python
PHP实现两种排课方式
2021/06/26 PHP