hoa/eventsource

This package is abandoned and no longer maintained. No replacement package was suggested.

The Hoa\Eventsource library.

Maintainers

πŸ‘ Hoa

Package info

github.com/hoaproject/Eventsource

Homepage

Forum

Documentation

pkg:composer/hoa/eventsource

Statistics

Installs: 24 782

Dependents: 2

Suggesters: 0

Stars: 107

Open Issues: 3

3.17.01.10 2017-01-10 10:47 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

BSD-3-Clause 8644825b2d8032ded1e5e5a1b2249edcd15bca0c

  • Ivan Enderlin <ivan.enderlin.woop@hoa-project.net>
  • Hoa community

httpeventlibraryserverpusheventsource


README

πŸ‘ Hoa

πŸ‘ 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.

Hoa\Eventsource

πŸ‘ 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.

Installation

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.

Testing

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.
 $server->tick->send(time());
 sleep(1);
}

And in index.html, our client:

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

try {
 var source = new EventSource('Server.php');
 source.onopen = function () {
 output.appendChild(document.createElement('hr'));

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

 return;
 });
} catch (e) {
 console.log(e);
}
</script>

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.

Awecode

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).

Documentation

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: hoa-project.net.

Getting help

There are mainly two ways to get help:

Contribution

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

License

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