AsyncTcpConnection 请求,onMessage中send的数据不被代理服务器解析

来者可追

在构建ai应用的时候 我使用AsyncTcpConnection向接口发起请求,接口测试一切正常,但是代理服务器读不出来onMessage中send的数据

程序代码或配置

        $connection = $request->connection;
        $connection->send(new Response(200, array('Content-Type' => 'application/octet-stream', 'Transfer-Encoding' => 'chunked'), 'hello'));
        $con = new AsyncTcpConnection("tcp://www.baidu.com:80");
        $con->onConnect = function ($con) {
            $con->send("GET / HTTP/1.1\r\nHost: www.baidu.com\r\nConnection: keep-alive\r\n\r\n");
        };
        $con->onMessage = function ($con, $data) use ($connection) {
            $connection->send("HTTP/1.1 200 OK\r\nContent-Type: application/octet-stream\r\nTransfer-Encoding: chunked\r\n\r\n你好世界~");
//            print_r(new Chunk('你好世界~'));
//            $connection->send(new Chunk('你好世界~'));
            $connection->send(new Chunk(''));
        };
        $con->connect();
        $connection->send(new Chunk('hello'));
        $connection->send(new Chunk('world'));
        $connection->send(new Chunk('!'));
//        $connection->send(new Chunk(''));

输出结果 hellohelloworld! 
onMessage  中send的信息都没有输出

操作系统环境及workerman/webman等具体版本

使用的webman 1.5.0 代理服务器为vite的proxy

336 1 0
1个回答

小W

$connection->send(new Chunk(''));为啥要注释?

  • 来者可追 2023-07-20

    这个是调试的时候做的,我知道要以这个结尾,经过多次测试就是发现onMessage 这里面send的数据不被代理服务器接收到,怀疑是vite的代理服务有点儿问题

🔝