connexions

Description:

array Worker::$connections

Le format est

array(id=>connection, id=>connection, ...)

Cette propriété contient tous les objets de connexion des clients pour le processus actuel, où id est le numéro d'identification de la connexion. Pour plus de détails, voir le manuel sur l'attribut id de TcpConnection.

$connections est très utile lors de la diffusion ou pour obtenir un objet de connexion à partir de l'identifiant de connexion.

Si vous connaissez le numéro de connexion comme $id, vous pouvez facilement obtenir l'objet de connexion correspondant via $worker->connections[$id], et ainsi manipuler la connexion socket correspondante, par exemple en envoyant des données avec $worker->connections[$id]->send('...').

Attention : Si la connexion est fermée (déclenchement de onClose), la connection correspondante sera supprimée du tableau $connections.

Attention : Les développeurs ne doivent pas modifier cette propriété, sinon cela pourrait entraîner des situations imprévisibles.

Exemple

use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('text://0.0.0.0:2020');
// Met en place un minuteur lors du démarrage du processus, pour envoyer des données à toutes les connexions clients
$worker->onWorkerStart = function($worker)
{
    // À intervalles réguliers, toutes les 10 secondes
    Timer::add(10, function()use($worker)
    {
        // Parcourt toutes les connexions clients du processus actuel, envoie l'heure actuelle du serveur
        foreach($worker->connections as $connection)
        {
            $connection->send(time());
        }
    });
};
// Exécute le worker
Worker::runAll();