两个workerman之间的数据转发

laoyao

在本地内网部署一个workerman,同时在公网服务器部署一个workerman,想让内网的workerman监听到8080端口的信息往公网workerman8089端口转发,如何能做到呢?

6735 3 0
3个回答

walkor

可以用AsyncTcpConnection和pipe导入
见手册
http://doc.workerman.net/tcp-connection/pipe.html

类似

<?php
use Workerman\Worker;
use Workerman\Connection\AsyncTcpConnection;
require_once './Workerman/Autoloader.php';

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

// tcp连接建立后
$worker->onConnect = function($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
Worker::runAll();
  • 暂无评论
laoyao

感谢walkor的回答

  • 暂无评论
walkor

不客气

  • heart 2017-04-27

    这种模式 如何获取客户端的真实IP

年代过于久远,无法发表回答
🔝