通过redis订阅动态laravel频道

I want to broadcast an event on dynamic channels in larvel.

To broadcast on a specific channel I tried this tutorial and all things worked fine.

This is my event:

class ChatNewMessage implements ShouldBroadcast
{
    use InteractsWithSockets, SerializesModels;

    public $targetUsers;
    public $message;

    public function __construct ($message)
    {
        $this->targetUsers = $message->chat->users->pluck('user_id');
        /*This is an array of user that are subscribed to a chat*/

        $this->message     = $message;
    }

    public function broadcastOn ()
    {
        $userChannels = [];
        foreach ($this->targetUsers as $id) {
            $userChannels[] = 'user-channel.' . $id;
        }

        return $userChannels;
    }
}

And this is js code to get events that occurred for a user by user_id=5 :

var socketURL = 'http://127.0.0.1:3000'; 

var socket = io(socketURL);
socket.on('user-channel.5:App\\Events\\ChatNewMessage', function (event) {
       alert(event.data);
});

And this is js code that runs node :

var app   = require('express')();
var http  = require('http').Server(app);
var io    = require('socket.io')(http);
var Redis = require('ioredis');
var redis = new Redis();

// redis.subscribe('user-channel.5', function (err, count) {});
redis.psubscribe('*', function(err, count) {});

redis.on('message', function (channel, message) {
    console.log('Message Received: ' + message);
    message = JSON.parse(message);
    io.emit(channel + ':' + message.event, message.data);
});

http.listen(3000, function () {
    console.log('Listening on Port 3000');
});

redis.on("error", function (err) {
    console.log(err);
});

As you can see I used redis.psubscribe('*', function(err, count) {}); to subscribe to all channels like user-channel.1 , user-channel.2 , user-channel.3 and so on.

But that does not work.

Of course when I used an static channel name on redis like redis.subscribe('user-channel.5', function (err, count) {}); that all things work.

I do not know what is problem and how can I subscribe to channels that are created dynamically.

I'm using laravel 5.2.

Finally I used below and all things worked fine :

var app   = require('express')();
var http  = require('http').Server(app);
var io    = require('socket.io')(http);
var Redis = require('ioredis');
var redis = new Redis();

redis.psubscribe('*', function(err, count) {});

redis.on('pmessage', function(subscribed, channel, message) {
    console.log(channel);
    message = JSON.parse(message);
    io.emit(channel + ':' + message.event, message.data);
});

http.listen(3000, function () {
    console.log('Listening on Port 3000');
});

redis.on("error", function (err) {
    console.log(err);
});