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();