bin | ||
doc | ||
src | ||
.gitignore | ||
composer.json | ||
composer.lock | ||
LICENSE | ||
Makefile | ||
mercureactd.conf.dist | ||
phpstan.neon | ||
phpunit.xml | ||
README.md |
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 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.
# 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
- Setup subscriptions
- Dynamic subscriptions
- Distribute events over WS
- HTTP middleware unittests
- Replay missed events based on event id
- Metrics endpoint