Verbindungen
Beschreibung:
array Worker::$connections
Das Format ist
array(id=>connection, id=>connection, ...)
In dieser Eigenschaft werden alle Client-Verbindungsobjekte des aktuellen Prozesses gespeichert, wobei id die Identifikationsnummer der Verbindung ist. Weitere Details finden Sie im Handbuch zur id-Eigenschaft von TcpConnection.
$connections ist beim Broadcast oder beim Abrufen des Verbindungsobjekts anhand der Verbindungs-ID sehr nützlich.
Wenn die Nummer der Verbindung $id bekannt ist, kann das entsprechende Verbindungsobjekt einfach über $worker->connections[$id] abgerufen werden, um die zugehörige Socket-Verbindung zu steuern, z.B. durch $worker->connections[$id]->send('...') Daten zu senden.
Beachten Sie: Wenn die Verbindung geschlossen wird (onClose ausgelöst wird), wird die entsprechende connection aus dem $connections Array entfernt.
Achtung: Entwickler sollten diese Eigenschaft nicht modifizieren, da dies unvorhersehbare Situationen verursachen kann.
Beispiel
use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('text://0.0.0.0:2020');
// Ein Timer wird beim Start des Prozesses gesetzt, um regelmäßig Daten an alle Client-Verbindungen zu senden
$worker->onWorkerStart = function($worker)
{
// Regelmäßig, alle 10 Sekunden
Timer::add(10, function()use($worker)
{
// Durchlaufe alle Client-Verbindungen des aktuellen Prozesses und sende die aktuelle Zeit des Servers
foreach($worker->connections as $connection)
{
$connection->send(time());
}
});
};
// Starte den Worker
Worker::runAll();