软件介绍
PHP SSE: Server-sent Events,一个简单有效的库,通过 PHP 实现了 HTML5 的服务器发送事件,用于实时从服务器推送事件到客户端,比 Websocket 更容易。
要求:PHP 5.4 or later
示例代码
Javascript demoClient: receiving events from the server//withCredentials=true: pass the cross-domain cookies to server-side
var source = new EventSource("http://127.0.0.1:9001/push.php", {withCredentials:true});
source.addEventListener("new-msgs", function(event){
console.log(event.data);//get data
}, false);
PHP demoServer: sending events from the server by pure phpinclude './vendor/autoload.php';
use Hhxsv5\SSE\SSE;
use Hhxsv5\SSE\Update;
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');
header('X-Accel-Buffering: no');//Nginx: unbuffered responses suitable for Comet and HTTP streaming applications
(new SSE())->start(new Update(function () {
$id = mt_rand(1, 1000);
$newMsgs = [
[
'id' => $id,
'title' => 'title' . $id,
'content' => 'content' . $id,
],
];//get data from database or servcie.
if (!empty($newMsgs)) {
return json_encode(['newMsgs' => $newMsgs]);
}
return false;//return false if no new messages
}), 'new-msgs');
为你推荐: