mercureact/README.md

1.7 KiB

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