<?php
namespace Illuminate\Broadcasting\Broadcasters;
use Illuminate\Contracts\Broadcasting\Broadcaster;
use Illuminate\Contracts\Redis\Database as RedisDatabase;
class RedisBroadcaster implements Broadcaster
{
* The Redis instance.
*
* @var \Illuminate\Contracts\Redis\Database
*/
protected $redis;
* The Redis connection to use for broadcasting.
*
* @var string
*/
protected $connection;
* Create a new broadcaster instance.
*
* @param \Illuminate\Contracts\Redis\Database $redis
* @param string $connection
* @return void
*/
public function __construct(RedisDatabase $redis, $connection = null)
{
$this->redis = $redis;
$this->connection = $connection;
}
* {@inheritdoc}
*/
public function broadcast(array $channels, $event, array $payload = [])
{
$connection = $this->redis->connection($this->connection);
$payload = json_encode(['event' => $event, 'data' => $payload]);
foreach ($channels as $channel) {
$connection->publish($channel, $payload);
}
}
}