gpt4 book ai didi

PHP 将数据流传输至 AJAX 调用

转载 作者:太空宇宙 更新时间:2023-11-03 18:24:46 25 4
gpt4 key购买 nike

遵循此信息:

我希望实现以下目标:

  • AJAX -> (POST)PHP(socket) -> (socket)Python

通过这样做:

$.ajax({
type: "POST",
url: "post.php",
async: true,
cache: false,
data: { data : 'ping 127.0.0.1' },
success: function(msg) {
console.log(msg);
}
});

PHP 看起来像:

//header("Connection: close");
//header("Content-Type: application/octet-stream");
socket_write($socket, 'ping 127.0.0.1', strlen('ping 127.0.0.1'));
ignore_user_abort();
//ob_implicit_flush(true);
//ob_end_flush();
while ($out = socket_read($socket, 8192)) {
echo $out;
ob_flush();
}
//ob_start();

Python 只是做:

sock.recv(8192)
for i in range(0, 4):
sock.send(bytes(json.dumps('Ping successfull..'), 'UTF-8'))
sleep(0.5)

我认为我能够“实时”缓冲数据,而不是最终像这样聚集数据:

"Ping successfull..""Ping successfull..""Ping successfull..""Ping successfull.."

我的想法哪里出了问题?这应该很简单吧?我已经这样做了很多次,但这次我不知道我做错了什么:/

我还验证了确实是 AJAX/PHP 桥不起作用,PHP 在数据到达时接收数据,并使用 strftime("%H:%M:%S") 进行验证我得到了每次接收之间的预期差异。

最佳答案

AJAX 使用 HTTP,因此仅当请求完成时才会调用成功/失败的回调,并且在接收数据时没有获取数据的选项。您应该检查网络套接字,它允许您处理来自服务器的流数据。

<小时/>

编辑:您还可以查看 multipart/x-mixed-replaceEventSource

关于PHP 将数据流传输至 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23409068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com