前端
fetch("https://service.ai.c.dev/chat", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
})
.then((response) => {
return response.body.getReader();
})
.then((reader) => {
return readAndProcess(reader);
})
.catch((error) => {
console.error("Error:", error);
});
function readAndProcess(reader) {
return reader.read().then(({ done, value }) => {
if (done) {
console.log("Stream processing complete");
return;
}
console.log("Received:", value);
return readAndProcess(reader);
});
}
后端
HttpRequest::streamingResponse(function() use ($data){
echo "test1";
ob_flush();
flush();
sleep(1);
echo "test2";
ob_flush();
flush();
});
Nginx配置
server {
listen 443 ssl http2;
server_name example.com;
keepalive_timeout 65;
keepalive_requests 1000;
proxy_buffering off;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;
chunked_transfer_encoding on;
}