/** * {@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); } }
/** * Broadcast the given event. * * @param array $channels * @param string $event * @param array $payload * @return void */ public function broadcast(array $channels, $event, array $payload = []) { $connection = $this->redis->connection($this->connection); $socket = Arr::pull($payload, 'socket'); $payload = json_encode(['event' => $event, 'data' => $payload, 'socket' => $socket]); foreach ($this->formatChannels($channels) as $channel) { $connection->publish($channel, $payload); } }
/** * {@inheritdoc} */ public function broadcast(array $channels, $event, array $payload = []) { $connection = $this->redis->connection($this->connection); $data = json_encode(['event' => $event, 'data' => $payload]); foreach ($channels as $channel) { $subscribers = $connection->publish($channel, $data); // Enough subscribers? if ($subscribers < $this->minSubscribers) { // Add channel $data = json_encode(['channel' => $channel, 'event' => $event, 'data' => $payload]); // Add to list $connection->rpush($this->listName, $data); } } }
/** * Get the Redis connection instance. * * @return \Predis\ClientInterface */ public function connection() { return $this->redis->connection($this->connection); }
/** * Get the connection for the queue. * * @return \Predis\ClientInterface */ protected function getConnection() { return $this->redis->connection($this->connection); }