2024-03-10 02:06:19 +00:00
|
|
|
# Mercureact
|
|
|
|
|
|
|
|
This is an implementation of the Mercure realtime protocol on steroids, built using ReactPHP.
|
|
|
|
|
2024-03-10 15:23:46 +00:00
|
|
|
**Mercureact is under development, and not ready for use in anything important.**
|
|
|
|
|
2024-03-10 02:06:19 +00:00
|
|
|
It is intended to be used standalone, but it may also be integrated into another PHP application.
|
|
|
|
|
2024-03-10 15:23:46 +00:00
|
|
|
## Installing
|
2024-03-10 02:06:19 +00:00
|
|
|
|
2024-03-10 15:23:46 +00:00
|
|
|
As PHAR:
|
|
|
|
|
|
|
|
* Download the latest [release](/noccy/mercureact/releases) from the forge.
|
|
|
|
|
|
|
|
As Composer dependency:
|
|
|
|
|
|
|
|
* `composer require noccylabs/mercureact`
|
|
|
|
|
|
|
|
## Using as PHAR
|
|
|
|
|
|
|
|
*TODO.*
|
|
|
|
|
|
|
|
```shell
|
|
|
|
# Make a copy of the dist config and edit it
|
|
|
|
$ cp mercureact.conf.dist mercurect.conf
|
|
|
|
$ editor mercureact.conf
|
|
|
|
# Use the config file when launching
|
|
|
|
$ ./mercureact.phar -c mercureact.conf
|
|
|
|
```
|
|
|
|
|
|
|
|
## Using as dependency
|
|
|
|
|
|
|
|
*TODO.*
|
|
|
|
|
|
|
|
## ToDos
|
2024-03-10 02:06:19 +00:00
|
|
|
|
2024-03-10 15:23:46 +00:00
|
|
|
* [ ] Read config from file
|
|
|
|
* [ ] Security Security Security
|
|
|
|
* [x] Check JWTs on connect
|
|
|
|
* [ ] Check claims on subscribe and publish
|
|
|
|
* [ ] WebSocket authentication
|
2024-03-10 22:12:34 +00:00
|
|
|
* [ ] Extract JWT claims to request attributes, instead of JWTToken
|
|
|
|
* [x] Subscription/Topic manager
|
|
|
|
* [x] Unify distribution
|
|
|
|
* [ ] Enumerate subscriptions and topics
|
2024-03-10 15:23:46 +00:00
|
|
|
* [ ] Publish events
|
|
|
|
* [ ] Server-Side Events distributor
|
|
|
|
* [x] Distribute events over SSE
|
|
|
|
* [ ] WebSocket distributor
|
|
|
|
* [ ] Setup subscriptions
|
|
|
|
* [ ] Dynamic subscriptions
|
|
|
|
* [x] Distribute events over WS
|
2024-03-10 22:12:34 +00:00
|
|
|
* [x] Break out HTTP middleware into classes
|
|
|
|
* [ ] HTTP middleware unittests
|