SSE 是一种基于文本的协议,而curl 是准确排除连接发送内容故障的好方法。命令很简单:
curl -N http://127.0.0.1/path/to/clock.php
(The -N
停止任何缓冲,因此数据按接收时的样子显示。)
它输出这个:
data:2015-07-07 06:19:27
data:2015-07-07 06:19:28
data:2015-07-07 06:19:29
data:2015-07-07 06:19:30
data:2015-07-07 06:19:31
data:2015-07-07 06:19:32
请注意它如何显示 SSE 协议的“data:”前缀,并且还清楚地显示双 LF。它会永远运行,直到您按下 ctrl-c。
唯一需要指出的是,您必须使用网络服务器;您无法通过 file:// 协议运行 SSE。
如需更多硬核故障排除,请添加--verbose
,它将显示正在发送的标头和正在接收的标头。
SSE 确实支持 cookie,您可以像这样提供:(您首先必须准备“cookies.txt”文件):
curl -N --cookie cookies.txt http://127.0.0.1/path/to/clock.php
See 其他答案 https://stackoverflow.com/a/52156238/841830和卷曲文档 https://curl.haxx.se/docs/tooldocs.html对于您可能需要考虑使用的其他选项。如果您正在对特定浏览器中的问题进行故障排除,请使用他们的开发工具来准确找出正在发送的标头,然后您可以告诉curl 执行相同的操作。
为了完整起见,这里是clock.php脚本:
<?php
set_time_limit(0);
header("Content-type: text/event-stream");
while(1){
echo "data:" . date("Y-m-d H:i:s") . "\n\n";
@ob_flush();flush();
sleep(1);
}