這次帶給大家PHP使用ActiveMQ案例分析(附程式碼),PHP使用ActiveMQ的注意事項有哪些,以下就是實戰案例,一起來看一下。
使用點對點(Point To Point)模型
點對點模型特點:
只有一個消費者可以接收到訊息
不能重複消費
生產者producer.php程式碼:
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程式碼:
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程式碼:
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程式碼:
username = 'test'; $obj->password = '123456'; $queneName = "/topic/userReg"; // 4.发送一个注册消息到队列 $stomp->send($queneName, json_encode($obj)); } } catch (StompException $e) { die('Connection failed: ' . $e->getMessage()); }
subscribe('/topic/userReg'); while (true) { //判断是否有读取的信息 if ($stomp->hasFrame()) { $frame = $stomp->readFrame(); $data = json_decode($frame->body, true); var_dump($data); $stomp->ack($frame); } }
?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使用ActiveMQ案例分析(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!