パイプ
説明:
void Connection::pipe(TcpConnection $target_connection)
パラメータ
現在の接続のデータストリームをターゲット接続にリダイレクトします。フロー制御が組み込まれています。このメソッドはTCPプロキシに非常に便利です。
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;
// TCP接続後
$worker->onConnect = function(TcpConnection $connection)
{
// ローカルの80ポートに非同期接続を確立する
$connection_to_80 = new AsyncTcpConnection('tcp://127.0.0.1:80');
// 現在のクライアント接続のデータを80ポートの接続にリダイレクトするように設定する
$connection->pipe($connection_to_80);
// 80ポート接続から返されたデータをクライアント接続にリダイレクトするように設定する
$connection_to_80->pipe($connection);
// 非同期接続を実行する
$connection_to_80->connect();
};
// ワーカーを実行する
Worker::runAll();