2 つの一見同一のコード チャンクがあります。最初のものでは、クライアント側のファイル (Server Sent Event 接続を使用) は JSON データを適切に受信して表示できますが、他のコードではそれができません。私は一生、理由を理解することはできません。
最初の作業コードは次のとおりです。
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
function sendMsg($id , $msg) {
echo "id: $id" . PHP_EOL;
echo "data: {\n";
echo "data: \"name\": \"Bob\", \n";
echo "data: \"msg\": \"$msg\", \n";
echo "data: \"id\": $id\n";
echo "data: }\n";
echo PHP_EOL;
ob_flush();
flush();
}
sendMsg(1, 'hello');
クライアント側のファイルでは、data.name に「Bob」が表示され、data.msg に「hello」が表示されます。
これは非動作コードです:
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$out .= "id: 1" . PHP_EOL;
$out .= "data: {\n";
$out .= "data: \"name\": \"Bob\",\n";
$out .= "data: \"msg\": \"hello\", \n";
$out .= "data: }\n";
$out .= PHP_EOL;
echo $out;
ob_flush();
flush();
私にはまったく同じように見えますが、何も表示されません! 何を与える?動作しないコードを翻訳して、代わりにすべての「エコー」ステートメントを使用することさえ試みた.out =
ので、最初のものとほぼ同じでした....エラー/違いが見られる人はいますか?
助けてくれてありがとう!