我需要从php脚本发布消息,我可以发布单个消息.但现在我需要在循环中发布不同的消息,找不到正确的方法如何做,这是我尝试的:
$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();
Run Code Online (Sandbox Code Playgroud)
在这里,我想向订阅者发布$ counter值,但值总是5,1.我有一种方法可以在循环之前打开连接然后在循环中发布消息2.如何从$ session-> publish()访问循环?
谢谢!
我正在尝试构建通知消息系统.我使用SimpleWsServer.php服务器示例.我想在服务器上完成任务时将通知推送到用户的浏览器.这需要使用PHP完成,我无法找到显示它的教程.当PHP服务器作为管理器运行时,所有教程似乎都显示了发送和接收的tavendo/AutobahnJS脚本.
是否可以使用php脚本向订阅者发送消息?
我尝试通过 Thruway 设置一个可以管理多个组的 websocket 服务器。类似于聊天应用程序,每个客户端可以同时订阅一个或多个,并将消息广播到整个聊天室。我设法用一个古老版本的 Ratchet 做到了这一点,但由于它运行得不是很流畅,我想切换到高速公路。可悲的是,我找不到任何可以管理群组的东西。到目前为止,我作为 websocket-manager 有以下内容,并且客户端正在使用 Autobahn|js (18.x) 的当前版本。
有没有人知道是否可以使用以下内容管理订阅组?
<?php
require_once __DIR__.'/../vendor/autoload.php';
use Thruway\Peer\Router;
use Thruway\Transport\RatchetTransportProvider;
$router = new Router();
$router->addTransportProvider(new RatchetTransportProvider("0.0.0.0", 9090));
$router->start();
Run Code Online (Sandbox Code Playgroud)