Conexões
Descrição:
array Worker::$connections
O formato é
array(id=>conexão, id=>conexão, ...)
Esta propriedade armazena todos os objetos de conexão do processo atual. O id é o número de identificação da conexão, consulte o manual para detalhes sobre a propriedade id de TcpConnection.
$connections
é muito útil para enviar transmissões ou obter um objeto de conexão com base no id da conexão.
Se você souber o id da conexão é $id
, pode obter facilmente o objeto de conexão correspondente através de $worker->connections[$id]
, e assim operar a conexão do socket correspondente, como enviar dados usando $worker->connections[$id]->send('...')
.
Nota: Se a conexão for fechada (desencadear onClose), a correspondente connection
será removida do array $connections
.
Nota: Os desenvolvedores não devem modificar esta propriedade, caso contrário, poderá ocorrer situações imprevisíveis.
Exemplo
use Workerman\Worker;
use Workerman\Timer;
require_once __DIR__ . '/vendor/autoload.php';
$worker = new Worker('text://0.0.0.0:2020');
// Ao iniciar o processo, defina um temporizador para enviar dados para todas as conexões dos clientes periodicamente
$worker->onWorkerStart = function($worker)
{
// Temporizador, a cada 10 segundos
Timer::add(10, function()use($worker)
{
// Percorre todas as conexões dos clientes do processo atual e envia a hora atual do servidor
foreach($worker->connections as $connection)
{
$connection->send(time());
}
});
};
// Execute o worker
Worker::runAll();