pipe

Giải thích:

void Connection::pipe(TcpConnection $target_connection)

Tham số

Nhập dòng dữ liệu của kết nối hiện tại vào kết nối mục tiêu. Tích hợp kiểm soát lưu lượng. Phương thức này rất hữu ích cho việc làm proxy TCP.

Ví dụ Proxy TCP

<?php
use Workerman\Worker;
use Workerman\Connection\AsyncTcpConnection;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

$worker = new Worker('tcp://0.0.0.0:8483');
$worker->count = 12;

// Sau khi kết nối tcp được thiết lập
$worker->onConnect = function(TcpConnection $connection)
{
    // Thiết lập kết nối bất đồng bộ cổng 80 địa phương
    $connection_to_80 = new AsyncTcpConnection('tcp://127.0.0.1:80');
    // Thiết lập để dẫn dữ liệu của kết nối khách hàng hiện tại đến kết nối cổng 80
    $connection->pipe($connection_to_80);
    // Thiết lập để dẫn dữ liệu trả về từ kết nối cổng 80 đến kết nối khách hàng
    $connection_to_80->pipe($connection);
    // Thực hiện kết nối bất đồng bộ
    $connection_to_80->connect();
};

// Chạy worker
Worker::runAll();