0
私はWorkermanをPHPSocketIOと一緒に使用しており、指定されたサーバーに定期的にデータを送信する方法を理解しようとしています。何らかの理由で私はJavascriptで完全に正常に動作しますが、PHPから接続されたすべてのクライアントに通知する必要があります。私はスタンドアロンの機能を使用してサーバーに接続し、標準の 'メッセージ'で通知しようとしましたが、何らかの理由で何もしていません。すべてのクライアントに定期的にデータを送信してください
<?php
require_once __DIR__ . '/vendors/autoload.php';
use Workerman\Worker;
use PHPSocketIO\SocketIO;
static $_TERMINATE_TIME = 61;
static $_CHECK_DATA = 3;
$io = new SocketIO(1234);
$io->on('connection', function($socket){
$socket->addedUser = false;
echo 'New user connected' . PHP_EOL;
$socket->broadcast->emit('message', array(
'data'=> array('test' => 1, 'blah' => 2)
));
$socket->on('message', function ($data)use($socket){
$socket->broadcast->emit('message', array(
'data' => array('test' => 1, 'blah' => 2)
));
});
});
function HasData()
{
echo 'Need to send server-side data to all clients ...' . PHP_EOL;
}
// Need to send notifications from the server every N seconds
\Workerman\Lib\Timer::add($_CHECK_DATA, 'HasData', null, true);
// Self-destruct server after K seconds
\Workerman\Lib\Timer::add($_TERMINATE_TIME, function() {Worker::stopAll();}, null, false);
Worker::runAll();