wp_send_json
只需使用wp_json_encode
作用
因此,您可以使用PHP的内置功能json_encode
您将面临的问题是保持连接的活动性,如果您没有太多的访问者,您可以通过简单地运行while true循环并在准备就绪时回显数据来阻止PHP线程。
while(true) {
// BTW, You\'ll have to handle your data within the loop or in an outer process
if($data_available) {
echo json_encode($data);
if($last_item) {
wp_die();
}
}
}
你必须确保
Keep-Alive
标头和正在调整脚本,以便为此协议功能提供足够的要求。
在WordPress的核心中编写此代码有点困难,将来可能会令人困惑,有一种替代解决方案可以解决此问题。
最好对此类数据使用双工协议(如WebSocket)(随着时间的推移,这些数据正在准备就绪)。在PHP中,有一个非常好的库可以编写反应式代码,名为ReactPHP
, 您只需将其与另一个名为React Socket
或Ratchet
(我记不清ratchet是否能自己处理所有东西)。