pipe

说明:

  1. void Connection::pipe(TcpConnection $target_connection)

参数

将当前连接的数据流导入到目标连接。内置了流量控制。此方法做TCP代理非常有用

范例 TCP代理

  1. <?php
  2. use Workerman\Worker;
  3. use Workerman\Connection\AsyncTcpConnection;
  4. require_once __DIR__ . '/Workerman/Autoloader.php';
  5. $worker = new Worker('tcp://0.0.0.0:8483');
  6. $worker->count = 12;
  7. // tcp连接建立后
  8. $worker->onConnect = function($connection)
  9. {
  10. // 建立本地80端口的异步连接
  11. $connection_to_80 = new AsyncTcpConnection('tcp://127.0.0.1:80');
  12. // 设置将当前客户端连接的数据导向80端口的连接
  13. $connection->pipe($connection_to_80);
  14. // 设置80端口连接返回的数据导向客户端连接
  15. $connection_to_80->pipe($connection);
  16. // 执行异步连接
  17. $connection_to_80->connect();
  18. };
  19. // 运行worker
  20. Worker::runAll();