webman中接口异步调用tcp服务端如何获将获取的数据返回?

爱吃鱼

问题描述

我在webman里写了个http 接口比如:test接口。在这个接口里做了一个AsyncTcpConnection去连接一个服务端tcp。如何将连接的tcp服务端获取到的数据返回给http?

如下图的获取到的$data数据。如何返回给http服务
截图

594 1 0
1个回答

walkor

用workerman v5吧

composer require workerman/workerman v5.0.0-beta.4 revolt/event-loop

控制器类似这样写

class IndexController
{
    public function index(Request $request)
    {
        $con = new AsyncTcpConnection('tcp://127.0.0.1:12345');
        $con->onConnect = function ($con) {
            $con->send('hello');
        };
        $suspension = EventLoop::getSuspension();
        $con->onMessage = function ($con, $data) use ($suspension) {
            $con->close();
            $suspension->resume($data);
        };
        $con->connect();
        return $suspension->suspend();
    }
}
  • 爱吃鱼 2023-04-08

    测试过可以了,顺便问下workerman v5正式版本预计什么时候发布哈?

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