TCP代理

作者: 零一间 | 来源:发表于2017-10-10 16:42 被阅读417次
<?php

/**
 * mysql代理
 * 将8306端口的tcp请求导入到远端的3306端口
 */
use Workerman\Worker;
use Workerman\Connection\AsyncTcpConnection;

require_once __DIR__ . '/Workerman/Autoloader.php';

//本机接收tcp请求协议和端口
$worker = new Worker('tcp://0.0.0.0:8306');
$worker->count = 20;

//远程tcp地址
define('DB_HOST', 'xxx.xxx.xxx.xxx');
//远程tcp端口
define('DB_PORT', '3306');

// tcp连接建立后
$worker->onConnect = function ($connection) {

    // 建立3306端口的异步连接
    $connection_to_3306 = new AsyncTcpConnection('tcp://' . DB_HOST . ':' . DB_PORT);
    // 设置将当前客户端连接的数据导向3306端口的连接
    $connection->pipe($connection_to_3306);
    // 设置3306端口连接返回的数据导向客户端连接
    $connection_to_3306->pipe($connection);
    // 执行异步连接
    $connection_to_3306->connect();
};

// 运行worker
Worker::runAll();

相关文章

网友评论

      本文标题:TCP代理

      本文链接:https://www.haomeiwen.com/subject/zgriextx.html