connections
説明:
array Worker::$connections
フォーマットは
array(id=>connection, id=>connection, ...)
このプロパティには現在のプロセスのすべてのクライアント接続オブジェクトが保存されており、idはconnectionのid番号です。詳細はマニュアルのTcpConnectionのid属性を参照してください。
$connections はブロードキャスト時や接続idに基づいて接続オブジェクトを取得する際に非常に便利です。
もしconnectionの番号が$idであることが分かれば、$worker->connections[$id]を介して対応するconnectionオブジェクトを簡単に取得でき、その後対応するsocket接続を操作できます。例えば、$worker->connections[$id]->send('...')を使用してデータを送信します。
注意:接続が閉じた場合(onCloseがトリガーされる)、対応するconnectionは$connections配列から削除されます。
注意:開発者はこのプロパティに対して変更操作を行わないでください。そうしないと予期しない状況が発生する可能性があります。
サンプル
use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('text://0.0.0.0:2020');
// プロセスが起動したときに、すべてのクライアント接続にデータを送信するための定期タイマーを設定します
$worker->onWorkerStart = function($worker)
{
// 定期的に、10秒ごと
Timer::add(10, function()use($worker)
{
// 現在のプロセスのすべてのクライアント接続を走査し、現在のサーバーの時間を送信します
foreach($worker->connections as $connection)
{
$connection->send(time());
}
});
};
// workerを実行
Worker::runAll();