itzyanick/sselib

1.0.0 2020-10-23 07:25 UTC

This package is auto-updated.

Last update: 2024-09-06 07:56:29 UTC


README

一个用于在您的PHP服务器上创建实时服务器端事件的库。在客户端,您可以使用简单易用的JavaScript实时获取事件。

要求

  • PHP 5.4 或更高版本

通过Composer安装

$ composer require itzyanick/sselib

用法

服务器端代码示例(PHP)

use ItzYanick\SSELIB\Server;
use ItzYanick\SSELIB\Event;

header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
header('Connection: keep-alive');
header('X-Accel-Buffering: no'); // optional

$dataCallback = function ($var, $prevData) {
    $push = ['content' => 'Fools'];
    if (empty($push)) {
        return false;
    }
    return [json_encode(compact('push')), json_encode(compact('push'))];
};

$abortCallback = function () {

};

$server = new Server();
$server->setEvent(new Event($dataCallback, 'data', 'var', $abortCallback));
$server->startServer(0);

启动服务器示例

$ php -S 127.0.0.1:9001 -t .

客户端代码示例(JavaScript)

const source = new EventSource('http://127.0.0.1:9001/sse.php', {withCredentials:true});
source.addEventListener('data', function(event) {
    console.log(event.data);
    // source.close(); // disconnect stream
}, false);

许可证

MIT