andersundsehr / server-send-events
实用包,用于帮助创建text/event-stream(服务器发送事件)
1.0.3
2023-07-31 16:11 UTC
Requires
- php: ~8.2.0
- psr/http-message: ^1.1 || ^2.0
Requires (Dev)
- pluswerk/grumphp-config: ^6.8
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的♥️
如果某些事情没有工作 😮
或者您喜欢这个扩展 🥰,请告诉我们。