AsyncTcpConnection 使用疑问

zhou604638018

问题描述

在webman里面 创建gateway 服务器,作为websocket服务端。 当接收用户某个请求时,需要向腾讯实时ASR发起调用。 我现在使用 AsyncTcpConnection 类向腾讯实时ASR发起调用,当我成功连接到腾讯实时ASR之后,向腾讯实时ASR发起音频流,一旦我发送完成,连接就自动断开了。 找了腾讯技术,说是我这边主动断开了连接。 理论上讲,我是可以用AsyncTcpConnection 作为websocket客户端吧

发送数据示例代码:

             $audioFilePath = "/home/www/webman/public/test.pcm"; 
            $audioData = file_get_contents($audioFilePath);

            // 分片大小,根据腾讯云文档设置
            $chunkSize = 1280; // 举例,具体大小请参照腾讯云文档
            $totalSize = strlen($audioData);

            Log::info('发送音频数据:' . $totalSize);
            // 分片发送
            for ($i = 0; $i < $totalSize; $i += $chunkSize) {
                $chunkData = substr($audioData, $i, $chunkSize);
                // 发送分片
                $connect->send($chunkData, true);
                usleep(40 * 1000);
            }
            Log::info('发送结束数据');
            $connect->send('{"type":"end"}');
386 1 0
1个回答

walkor 打赏
  • zhou604638018 2024-04-25

    感谢回复,我是参考你发的这个文档连接写的。在onWebSocketConnect里面给腾讯实时ASR发送数据的,发送完数据,就自动断开了域腾讯实时ASR那边的连接(这个是他们技术那边,说是我这边主动断开了连接,实际我没有主动关闭连接)。 后来我用百度的实时ASR,也是同样的问题,发送完数据,连接就断开了

×
🔝