You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vonglasow 8c7cb113e8
Merge pull request #23 from atefBB/patch-1
1 year ago
Documentation fix typo 1 year ago
.State Add the state of the library. 6 years ago
.gitignore Add a `.gitignore` file. 5 years ago Prepare 3 years ago
Exception.php Quality: Happy new year! 3 years ago Documentation: New `` file. 3 years ago
Server.php Quality: Happy new year! 3 years ago
composer.json Documentation: Update `support` properties. 3 years ago


Build status Code coverage Packagist License

Hoa is a modular, extensible and structured set of PHP libraries.
Moreover, Hoa aims at being a bridge between industrial and research worlds.


Help on IRC Help on Gitter Documentation Board

This library allows to manipulate the EventSource (aka Server-Sent Events) technology by creating a server.

Learn more.


With Composer, to include this library into your dependencies, you need to require hoa/eventsource:

$ composer require hoa/eventsource '~3.0'

For more installation procedures, please read the Source page.


Before running the test suites, the development dependencies must be installed:

$ composer install

Then, to run all the test suites:

$ vendor/bin/hoa test:run

For more information, please read the contributor guide.

Quick usage

We propose as a quick overview to send an unlimited number of events from the server to the client. The client will display all received events. Thus, in Server.php:

$server = new Hoa\Eventsource\Server();

while (true) {
    // “tick” is the event name.

And in index.html, our client:

<pre id="output"></pre>
var output = document.getElementById('output');

try {
    var source    = new EventSource('Server.php');
    source.onopen = function () {

    source.addEventListener('tick', function (evt) {
        var samp       = document.createElement('samp');
        samp.innerHTML = + '\n';

} catch (e) {

Start your HTTP server and then open index.html.

The Hoa\Eventsource\Server::setReconnectionTime method allows to redefine the time before the client will reconnect after a disconnection. The Hoa\Eventsource\Server::getLastId method allows to retrieve the last ID sent to the client.


The following awecodes show this library in action:

  • Hoa\Eventsource: why and how to use Hoa\Eventsource\Server? A simple and daily useful example will illustrate the EventSource technology (or Server-Send Events).


The hack book of Hoa\Eventsource contains detailed information about how to use this library and how it works.

To generate the documentation locally, execute the following commands:

$ composer require --dev hoa/devtools
$ vendor/bin/hoa devtools:documentation --open

More documentation can be found on the project’s website:

Getting help

There are mainly two ways to get help:


Do you want to contribute? Thanks! A detailed contributor guide explains everything you need to know.


Hoa is under the New BSD License (BSD-3-Clause). Please, see LICENSE for details.