$options = [
'max_conn_per_addr' => 128,
'keepalive_timeout' => 15,
'connect_timeout' => 30,
'timeout' => 600,
];
$client = new Client($options);
$client->request($uri, [
'method' => 'POST',
'version' => '1.1',
'data' => json_encode($data),
'headers' => [
'Authorization' => "Bearer {$appKey}",
'X-DashScope-SSE' => 'enable',
],
'progress' => function ($buffer) use ($onMessage) {
$this->debug && $this->stdoutLogger->info($buffer);
},
]);
以上代码的buffer
有时候会是不完整的消息,我发现这个情况是出现在消息很长的情况下
...内,表明�
会出现这种数据,消息短没有问题,消息长了看起来应该是不完整,请问如何处理?
参数有个超时时间,设置长一些
你好,walkor
我测了2次
出现不完整消息
1次出现在 72s
2次出现再 33s
但是被截断的消息长度都是一样的
2次用strlen($message),截断时候长度均为1455
buffer 本身就是收到的片段,不是完整的。
比如对方发来的数据是 ABCD, progress假设触发了3次,那么三次buffer可能是这样的
A
BC
D
,每次都是一个片段,加起来是完整的 ABCD。你要完整数据用 success 回调