PHPSSE:Server-setEvets,一个简单有效的库,通过PHP实现了HTML5的服务器发送事件,用于实时从服务器推送事件到客户端,比Websocket更容易。
要求:PHP5.4orlater
示例代码JavascriptdemoCliet:receivigevetsfromtheserver
//withCredetials=true: pass the cross-domai cookies to server-sidevar source = ew EvetSource("https://127.0.0.1:9001/push.php", {withCredetials:true});source.addEvetListeer("ew-msgs", fuctio(evet){ cosole.log(evet.data);//get data}, false);PHPdemoServer:sedigevetsfromtheserverbypurephp
iclude './vedor/autoload.php';use Hhxsv5\SSE\SSE;use Hhxsv5\SSE\Update;header('Cotet-Type: text/evet-stream');header('Cache-Cotrol: o-cache');header('Coectio: keep-alive');header('X-Accel-Bufferig: o');//Ngix: ubuffered resposes suitable for Comet ad HTTP streamig applicatios(ew SSE())->start(ew Update(fuctio () { $id = mt_rad(1, 1000); $ewMsgs = [ [ 'id' => $id, 'title' => 'title' . $id, 'cotet' => 'cotet' . $id, ], ];//get data from database or servcie. if (!empty($ewMsgs)) { retur jso_ecode(['ewMsgs' => $ewMsgs]); } retur false;//retur false if o ew messages}), 'ew-msgs');
评论