日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php监听mq消息,客户端监听服务端获取rabbitmq消息队列,rabbitmq有消息的时候客户端刷新页面才能获取到消息,监听没起到作用,请求各位大神指点迷津...

發布時間:2023/12/10 php 45 豆豆

header("Content-Type:text/html;charset=utf-8");

use Workerman\Worker;

require_once __DIR__ . '/Autoloader.php';

// 注意:這里與上個例子不同,使用的是websocket協議

$ws_worker = new Worker("websocket://192.168.1.218:5556");

// 啟動4個進程對外提供服務

$ws_worker->count = 4;

// 當收到客戶端發來的數據后返回hello $data給客戶端

$ws_worker->onMessage = function($connection, $data)

{

$data = json_decode($data, true);

$conn_arg = array(

'host' => '192.168.1.100',

'port' => '5672',

'login' => 'qifaoa',

'password' => 'qifaoa@123',

'vhost' => '/',

);

foreach ($data as $k => $v) {

$exchange = $v;//交換機

$routing_key = $v;//路由key

$queue = $v;//隊列

if (empty($exchange) || empty($routing_key) || empty($queue)) {

$connection->send('參數錯誤');

die();

}

//創建連接和channel

$conn = new AMQPConnection($conn_arg);

if (!$conn->connect()) {

$connection->send('rabbitmq連接失敗');

die();

} else {

// echo '連接成功'."\n";

}

$channel = new AMQPChannel($conn);

//創建隊列

$q = new AMQPQueue($channel);

$q->setName($queue);

$q->setFlags(AMQP_DURABLE);//設置隊列持久化

$q->declareQueue();//聲明創建隊列

$q->bind($exchange, $routing_key);//綁定交換機,指定路由鍵

//消息獲取

$message = $q->get(AMQP_AUTOACK);//自動應答機制

//判斷消息是否存在

if ($message) {

$connection->send($message->getBody());

} else {

// echo json_encode('空');

}

$conn->disconnect();//關閉

}

};

//連接關閉

$ws_worker->onclose = function($connection) {

echo "connection close\n";

};

//連接錯誤

$worker->onError = function($connection, $code, $msg)

{

echo "error $code $msg\n";

};

// 運行worker

Worker::runAll();

總結

以上是生活随笔為你收集整理的php监听mq消息,客户端监听服务端获取rabbitmq消息队列,rabbitmq有消息的时候客户端刷新页面才能获取到消息,监听没起到作用,请求各位大神指点迷津...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。