kết nối

Giải thích:

array Worker::$connections

Định dạng là

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

Thuộc tính này lưu trữ các đối tượng kết nối của tất cả các khách hàng trong tiến trình hiện tại, trong đó id là số định danh của connection, chi tiết xem trong tài liệu 属性 id của TcpConnection

$connections rất hữu ích khi phát sóng hoặc lấy đối tượng kết nối theo id kết nối.

Nếu biết số định danh của kết nối là $id, có thể dễ dàng lấy đối tượng connection tương ứng qua $worker->connections[$id] và thao tác trên kết nối socket tương ứng, ví dụ như gửi dữ liệu qua $worker->connections[$id]->send('...').

Lưu ý: Nếu kết nối bị đóng (kích hoạt onClose), đối tượng connection tương ứng sẽ bị xóa khỏi mảng $connections.

Lưu ý: Các nhà phát triển không nên thực hiện thao tác sửa đổi đối với thuộc tính này, nếu không có thể gây ra tình huống không thể đoán trước.

Ví dụ

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

$worker = new Worker('text://0.0.0.0:2020');
// Thiết lập một bộ định thời khi tiến trình bắt đầu, định kỳ gửi dữ liệu đến tất cả các kết nối khách hàng
$worker->onWorkerStart = function($worker)
{
    // Định kỳ, mỗi 10 giây một lần
    Timer::add(10, function()use($worker)
    {
        // Duyệt tất cả các kết nối khách hàng trong tiến trình hiện tại, gửi thời gian hiện tại của máy chủ
        foreach($worker->connections as $connection)
        {
            $connection->send(time());
        }
    });
};
// Chạy worker
Worker::runAll();