A server implementing the Mercure SSE specification
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 on steroids, built using ReactPHP.
Mercureact is under development, and not ready for use in anything important.
It is intended to be used standalone, but it may also be integrated into another PHP application.
Installing
As PHAR:
- Download the latest release from the forge.
As Composer dependency:
composer require noccylabs/mercureact
Using as PHAR
TODO.
# Make a copy of the dist config and edit it
$ cp mercureact.conf.dist mercureact.conf
$ editor mercureact.conf
# Use the config file when launching
$ ./mercureact.phar -c mercureact.conf
Using as dependency
TODO.
ToDos
- Read config from file
- Security Security Security
- Check JWTs on connect
- Check claims on subscribe and publish
- WebSocket authentication
- Extract JWT claims to request attributes, instead of JWTToken
- Subscription/Topic manager
- Unify distribution
- Enumerate subscriptions and topics
- Publish events
- Server-Side Events distributor
- Distribute events over SSE
- WebSocket distributor
- Setup subscriptions
- Dynamic subscriptions
- Distribute events over WS
- Break out HTTP middleware into classes
- HTTP middleware unittests
- Replay missed events based on event id
- Figure out how to determine last event IDs
- Metrics endpoint