mercureact/README.md

49 lines
1.7 KiB
Markdown

# Mercureact
This is an implementation of the Mercure realtime protocol, built using ReactPHP. It is intended to be used standalone, but it may also be integrated into another ReactPHP application.
**Mercureact is under development, and not ready for use in anything important.**
## Installing
As PHAR:
* Download the latest [release](/noccy/mercureact/releases) from the forge.
As Composer dependency:
* `composer require noccylabs/mercureact:@dev`
## Using as PHAR
Running `mercureact.phar` without passing a config file with `-c` will spawn an insecure daemon that can be used for testing. Following tradition, the default JWT secret key is `!ChangeThisMercureHubJWTSecretKey!`; this key must be used to publish, but anonymous subscribers are allowed, and will be delivered any non-private updates.
You should probably use a configuration file for just about every case. Mercureact contains a compact dist config that can be written to a file with `-C`, or you can use the `mercureact.conf.dist` file from the repository.
```shell
# If you got a mercureact.conf.dist file, make a copy and edit it
$ cp mercureact.conf.dist mercureact.conf
$ editor mercureact.conf
# Or use the -C (capital C) option to generate and edit one
$ ./mercureact.phar -C mercureact.conf
# Then use the config file when launching
$ ./mercureact.phar -c mercureact.conf
```
## Using as dependency
Take a look at `src/Daemon.php` and `src/Http/Server.php` depending on how much of Mercureact you want to reuse.
## ToDos
* [ ] WebSocket distributor
* [ ] WebSocket authentication
* [x] Setup subscriptions
* [x] Dynamic subscriptions
* [x] Distribute events over WS
* [ ] HTTP middleware unittests
* [ ] Replay missed events based on event id
* [ ] Metrics endpoint