溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中使用ActiveMQ發(fā)送消息

發(fā)布時間:2021-03-20 16:43:29 來源:億速云 閱讀:136 作者:Leah 欄目:開發(fā)技術

本篇文章給大家分享的是有關怎么在php中使用ActiveMQ發(fā)送消息,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1.php代碼如下:

<?php
$stomp = new Stomp('tcp://192.168.1.222:61613');

$obj = new Stdclass();
//下面這些數(shù)據(jù),實際中是用戶通過前端頁面post來的,這里只做演示
$obj->username = 'test';
$obj->password = '123456';
//發(fā)送一個注冊消息到隊列,我們這里模擬用戶注冊
$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);

  //我們通過獲取的數(shù)據(jù)
  //處理相應的邏輯,比如存入數(shù)據(jù)庫,發(fā)送驗證碼等一系列操作。
  //$db->query("insert into user values('{$username}','{$password}')");
  //sendVerify();

  //表示消息被處理掉了,ack()函數(shù)很重要
  $stomp->ack($frame);
 }
 sleep(1);
}

分別運行上面兩個腳本文件

> /data/php56/bin/php 1.php
> /data/php56/bin/php 2.php

怎么在php中使用ActiveMQ發(fā)送消息

我們還可以把上面的2.php代碼分成多步執(zhí)行。

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;
   //如果入庫成功,再次把數(shù)據(jù)發(fā)送到另一個消息隊列中,進行下一步處理
   $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()發(fā)送驗證碼,實際中應該是請求某接口
  $ret = true;
  if($ret) {
   echo $data['username'], '發(fā)送驗證碼成功', 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發(fā)送消息

怎么在php中使用ActiveMQ發(fā)送消息

以上就是怎么在php中使用ActiveMQ發(fā)送消息,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI