Connexions
Description:
array Worker::$connections
Au format
array(id=>connexion, id=>connexion, ...)
Cette propriété stocke tous les objets de connexion client du processus actuel, avec l'identifiant comme clé et l'objet de connexion comme valeur. Consultez le manuel pour plus de détails sur la propriété id de TcpConnection.
$connections
est très utile lors de la diffusion ou de l'obtention d'un objet de connexion en fonction de son ID.
Si l'ID de la connexion est connu sous la forme $id
, il est possible d'obtenir l'objet de connexion correspondant de manière pratique en utilisant $worker->connections[$id]
, permettant ainsi de manipuler la connexion socket correspondante, par exemple en envoyant des données via $worker->connections[$id]->send('...')
.
Remarque : Si la connexion est fermée (déclenchement de onClose), la connexion correspondante est supprimée du tableau $connections
.
Remarque : Les développeurs ne doivent pas modifier cette propriété, car 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');
// Au démarrage du processus, définir une minuterie pour envoyer des données à toutes les connexions client à intervalles réguliers
$worker->onWorkerStart = function($worker)
{
// Minuterie, toutes les 10 secondes
Timer::add(10, function()use($worker)
{
// Parcours de toutes les connexions client du processus actuel et envoi de l'heure du serveur actuel
foreach($worker->connections as $connection)
{
$connection->send(time());
}
});
};
// Démarrer le worker
Worker::runAll();