Verbindungen

Beschreibung:

array Worker::$connections

Das Format ist

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

Diese Eigenschaft enthält alle Client-Verbindungsobjekte des aktuellen Prozesses, wobei die ID die Kennung der Verbindung ist. Weitere Details finden Sie im Handbuch unter Eigenschaft id von TcpConnection.

$connections ist nützlich, um bei der Rundsendung oder beim Abrufen des Verbindungsobjekts anhand der Verbindungs-ID zu arbeiten.

Wenn Sie die Verbindungs-ID $id kennen, können Sie ganz einfach das entsprechende Verbindungsobjekt über $worker->connections[$id] abrufen und somit die entsprechende Socket-Verbindung bedienen, beispielsweise indem Sie $worker->connections[$id]->send('...') verwenden, um Daten zu senden.

Hinweis: Wenn eine Verbindung geschlossen wird (onClose ausgelöst), wird das entsprechende Verbindungs-Objekt aus dem $connections-Array entfernt.

Achtung: Entwickler sollten diese Eigenschaft nicht bearbeiten, da dies zu unvorhersehbaren Situationen führen kann.

Beispiel

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

$worker = new Worker('text://0.0.0.0:2020');
// Beim Starten des Prozesses wird ein Timer gesetzt, um periodisch Daten an alle Client-Verbindungen zu senden
$worker->onWorkerStart = function($worker)
{
    // Timer, alle 10 Sekunden
    Timer::add(10, function()use($worker)
    {
        // Durchlaufen aller Client-Verbindungen des aktuellen Prozesses und Senden der aktuellen Zeit des Servers
        foreach($worker->connections as $connection)
        {
            $connection->send(time());
        }
    });
};
// Worker ausführen
Worker::runAll();