A Redis adapter for the php-pubsub package.
composer require superbalist/php-pubsub-redis
$client = new Predis\Client([
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
'read_write_timeout' => 0
]);
$adapter = new \Superbalist\PubSub\Redis\RedisPubSubAdapter($client);
// consume messages
// note: this is a blocking call
$adapter->subscribe('my_channel', function ($message) {
var_dump($message);
});
// publish messages
$adapter->publish('my_channel', 'HELLO WORLD');
$adapter->publish('my_channel', ['hello' => 'world']);
$adapter->publish('my_channel', 1);
$adapter->publish('my_channel', false);
// publish multiple messages
$messages = [
'message 1',
'message 2',
];
$adapter->publishBatch('my_channel', $messages);
The library comes with examples for the adapter and a Dockerfile for running the example scripts.
Run make up
.
You will start at a bash
prompt in the /opt/php-pubsub
directory.
If you need another shell to publish a message to a blocking consumer, you can run docker-compose run php-pubsub-redis /bin/bash
To run the examples:
$ php examples/RedisConsumerExample.php
$ php examples/RedisPublishExample.php (in a separate shell)