andersundsehr/server-send-events

实用包,用于帮助创建text/event-stream(服务器发送事件)

1.0.3 2023-07-31 16:11 UTC

This package is auto-updated.

Last update: 2024-08-30 01:44:18 UTC


README

安装

composer req andersundsehr/server-send-events

它做什么

它使您能够轻松使用text/event-stream(服务器发送事件)。

在您的控制器中

if (ServerSendEventStream::isEventStream($this->request)) {
    $stream = new ServerSendEventStream();
    $trigger = new FileEventTrigger($stream);

    $stopTime = time() + (5 * 60);
    do {
        $stream->sendMessage($this->getInfo()); // is send to the JS long running script

        $trigger->sleepUntilTrigger('changed-' . $currentUser->getUid(), $stopTime);
    } while (time() < $stopTime);
    die();
}

代码的其他部分

(new FileEventTrigger())->trigger('changed-' . $currentUser->getUid());

在您的JS中

//EventSource as an auto restart :)
const evtSource = new EventSource(url, {
  withCredentials: true,
});
evtSource.addEventListener("message", (e) => {
  const data = JSON.parse(e.data);
  // do stuff with the data
  // data comes from $stream->sendMessage()
});

来自anders und sehr GmbH的♥️

如果某些事情没有工作 😮
或者您喜欢这个扩展 🥰,请告诉我们。

我们正在招聘 https://www.andersundsehr.com/karriere/