我正在使用SSE (发送服务器事件/事件源)方法在我的应用程序中实时接收JSON API值。
我有一个json聊天API,到目前为止,我需要将它放在我的应用程序中。
我的问题如下,当我收到JSON值时,将其发送到EventSource,但是在EventSource中仅收到JSON的最后一行,请遵循以下代码:
<html lang="en">
<head>
<title>Using Server-Sent Events</title>
<script>
var source = new EventSource("test.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML = event.data + "<br>";
};
</script>
</head>
<body>
<div id="result">
<!--Server response will be inserted here-->
</div>
</body>
</html>
*注意:我从'test.php'页面获取JSON。 *这是来自test.php的代码:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.chat-api.com/instance136679/messages?token=f2norkhlaffhhi83&chatId=5511986575416%40c.us",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json"
),
));
$response = curl_exec($curl);
curl_close($curl);
$array = json_decode($response);
$valor = null;
foreach ($array->messages as $value) {
$data = json_encode($value->body);
$valor .= $data;
echo "data: {$data}\n\n";
flush();
}
?>
这里是JSON文件(API向我发送了此文件:]:>
date: "Test1" date: "Test2" date: "Test3" date: "Test4" date: "Test5" data: "CHAT API"
我从* EventSource *那里获得:
CHAT API
我正在使用SSE(发送服务器事件/事件源)方法在我的应用程序中实时接收JSON API值。我得到了一个json聊天API,到目前为止,我需要将其放入应用程序中。 ...
这里有多个问题。首先是您拼错了data:
。它必须是data:
,而不是date:
。