A PHP implementation of socket.io-emitter.
This project requires a Redis client for PHP. If you dont have the PECL Redis installed, the emitter will default to using TinyRedisClient. You can, however, pass in any Redis client that supports a publish
method.
To install and use in your PHP project, install it as a composer package. Install dependencies with composer install
.
To run tests, invoke make test
. The current test suite will just be checking redis monitor that everything is published correctly. Some work will be put into making a better integration test suite in the near future.
$redis = new \Redis(); // Using the Redis extension provided client
$redis->connect('127.0.0.1', '6379');
$emitter = new SocketIO\Emitter($redis);
$emitter->emit('event', 'payload str');
You can set a base namespace on initialisation:
$redis = new \Redis();
$redis->connect('127.0.0.1', '6379');
$emitter = new SocketIO\Emitter($redis, array(
'key' => 'socket-io:'
));
You can then specify events on specific emits:
$emitter->emit('my-event', 'payload str');
Which will show up as:
"PUBLISH" "socket-io:my-event" ...
Possible flags
- json
- volatile
- broadcast
// Below initialization will create a phpredis client, or a TinyRedisClient depending on what is installed
$emitter = new SocketIO\Emitter(array('port' => '6379', 'host' => '127.0.0.1'));
// broadcast can be replaced by any of the other flags
$emitter->broadcast->emit('other event', 'such data');
$emitter = new SocketIO\Emitter(); // If arguments are not provided, they will default to array('port' => '6379', 'host' => '127.0.0.1')
$emitter->emit('event', array('property' => 'much value', 'another' => 'very object'));