exinfinite / server-event
server send event
1.1.2
2020-11-06 03:50 UTC
Requires
- php: >=5.6
README
Server Send Event
安裝
composer require exinfinite/server-event
使用
後端事件源 source.php
header("Cache-Control: no-cache"); header("Content-Type: text/event-stream"); use Exinfinite\ServerEvent; $count = 1; $interval = 30; ServerEvent::setEvent('userconnect');//event type while (true) { ServerEvent::setId($count);//event id ServerEvent::shot("Server Sent Event round {$count}");//event data if($count == '5'){ ServerEvent::shot("connection closed"); ServerEvent::close();//關閉連線 } $count++; sleep($interval); }
前端接收 js
var es = new EventSource("source.php"); es.addEventListener('userconnect', function(e) {//ServerEvent::setEvent('userconnect') console.log(`Receive: ${e.data}`); }, false); es.addEventListener('error', function(e) {//ServerEvent::close()時觸發 es.close(); }, false);
執行結果