您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
workerman类TcpConnection的接口pipe通道实现流量控制tcp代理
发布时间:2021-12-03 23:52:05编辑:雪饮阅读()
pipe
说明:
void Connection::pipe(TcpConnection $target_connection)
参数
将当前连接的数据流导入到目标连接。内置了流量控制。此方法做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:8484');
$worker->count = 12;
// tcp连接建立后
$worker->onConnect = function (TcpConnection $connection) {
// 建立本地3306端口的异步连接
$connection_to_3306 = new AsyncTcpConnection('tcp://127.0.0.1:3306');
// 设置将当前客户端连接的数据导向3306端口的连接
$connection->pipe($connection_to_3306);
// 设置3306端口连接返回的数据导向客户端连接
$connection_to_3306->pipe($connection);
// 执行异步连接
$connection_to_3306->connect();
};
// 运行worker
Worker::runAll();
?>
实例运行:
[root@izj6c2jeancylo0ppo4vz5z workerman]# php test.php start
Workerman[test.php] start in DEBUG mode
---------------------------------------- WORKERMAN -----------------------------------------
Workerman version:4.0.22 PHP version:7.0.33
----------------------------------------- WORKERS ------------------------------------------
proto user worker listen processes status
tcp root none tcp://0.0.0.0:8484 12 [OK]
--------------------------------------------------------------------------------------------
Press Ctrl+C to stop. Start success.
客户端telnet连接:
关键字词:workerman,TcpConnection,pipe,tcp,代理,通道,流量控制
相关文章
- workerman类TcpConnection的接口pauseRecv实现上传流
- workerman类TcpConnection的接口pauseRecv实现上传流
- workerman类TcpConnection的worker属性
- workerman类TcpConnection的id属性
- workerman类TcpConnection的protocol属性
- workerman类TcpConnection的回调属性onClose
- workerman类TcpConnection的回调属性onMessage
- workerman类TcpConnection的接口destroy
- workerman类TcpConnection的接口getRemoteIp获取远端
- workerman类TcpConnection的接口getRemotePort获取远