我需要從php腳本發佈消息,我可以發佈一條消息。但現在我需要在循環發佈不同的信息,無法找到正確的方式該怎麼辦呢,這裏是我的嘗試:voryx thruway多次發佈
$counter = 0;
$closure = function (\Thruway\ClientSession $session) use ($connection, &$counter) {
//$counter will be always 5
$session->publish('com.example.hello', ['Hello, world from PHP!!! '.$counter], [], ["acknowledge" => true])->then(
function() use ($connection) {
$connection->close(); //You must close the connection or this will hang
echo "Publish Acknowledged!\n";
},
function ($error) {
// publish failed
echo "Publish Error {$error}\n";
}
);
};
while($counter<5){
$connection->on('open', $closure);
$counter++;
}
$connection->open();
在這裏,我要發佈$計數器值用戶,但該值始終爲5,1.是否有一種方法可以在循環之前打開連接,然後在循環中發佈消息 2.如何從循環訪問$ session-> publish()?
謝謝!
'$ connection-> on('open'...)'只運行一次嗎?我不知道高速公路,但很可能「開放」事件只發射一次。這就是爲什麼你只發送一條消息而不管循環如何。 – marekful
現在我把$ connection-> open();內部循環,它可以根據需要工作,但每次打開連接都可以嗎?一般來說,我有一個deamon,它的運行方式如下:while(true){...}並在那裏發佈消息。 – dave101ua
按照他們的[文檔](https://github.com/voryx/Thruway),似乎您需要註冊並調用遠程過程來發送數據。 ($ session-> register()和$ session-> call()) – marekful