首頁  >  文章  >  後端開發  >  PHP使用ActiveMQ案例分析(附程式碼)

PHP使用ActiveMQ案例分析(附程式碼)

php中世界最好的语言
php中世界最好的语言原創
2018-05-19 10:40:311428瀏覽

這次帶給大家PHP使用ActiveMQ案例分析(附程式碼),PHP使用ActiveMQ的注意事項有哪些,以下就是實戰案例,一起來看一下。

使用點對點(Point To Point)模型

點對點模型特點:

  • 只有一個消費者可以接收到訊息

  • 不能重複消費

生產者producer.php程式碼

<?php
try {
  // 1.建立连接
  $stomp = new Stomp(&#39;tcp://47.52.119.21:61613&#39;);
  // 2.实例化类
  $obj = new Stdclass();
  // 3.获取数据
  for($i=0; $i<3; $i++){
    $obj->username = 'test';
    $obj->password = '123456';
    $queneName   = "/queue/userReg";
    // 4.发送一个注册消息到队列
    $stomp->send($queneName, json_encode($obj));
  }
} catch (StompException $e) {
  die('Connection failed: ' . $e->getMessage());
}

消費者1consumer1 .php程式碼:

<?php
$stomp = new Stomp(&#39;tcp://localhost:61613&#39;);
$stomp->subscribe('/queue/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

消費者2consumer2.php程式碼:

<?php
$stomp = new Stomp(&#39;tcp://localhost:61613&#39;);
$stomp->subscribe('/queue/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}

執行結果圖如下:

##使用發布/訂閱( Publish Subscribe)模型

發布/訂閱模型特點:

多個消費者都可以收到訊息

能重複消費
生產者producer.php程式碼:

<?php
try {
  // 1.建立连接
  $stomp = new Stomp(&#39;tcp://47.52.119.21:61613&#39;);
  // 2.实例化类
  $obj = new Stdclass();
  // 3.获取数据
  for($i = 0; $i < 3; $i++){
    $obj->username = 'test';
    $obj->password = '123456';
    $queneName   = "/topic/userReg";
    // 4.发送一个注册消息到队列
    $stomp->send($queneName, json_encode($obj));
  }
} catch (StompException $e) {
  die('Connection failed: ' . $e->getMessage());
}
消費者1consumer1.php程式碼:

<?php
$stomp = new Stomp(&#39;tcp://localhost:61613&#39;);
$stomp->subscribe('/topic/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}
消費者2consumer2.php程式碼:

?php
$stomp = new Stomp('tcp://localhost:61613');
$stomp->subscribe('/topic/userReg');
while (true) {
  //判断是否有读取的信息
  if ($stomp->hasFrame()) {
    $frame = $stomp->readFrame();
    $data = json_decode($frame->body, true);
    var_dump($data);
    $stomp->ack($frame);
  }
}
執行結果圖如下:

#相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

php與js開啟本機exe應用程式傳遞參數步驟詳解

##如何實作php刪除固定路徑下資料夾與檔案

#

以上是PHP使用ActiveMQ案例分析(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn