无法在 Redis 客户端订阅频道中接收消息;从 laravel 服务器发送的消息

not able to receive messaged in redis client subscribed to channel ; messages sent from laravel server

我正在尝试订阅 Redis 频道 'JoinCall' 并在控制台中记录消息。

正在从 Laravel 服务器发布消息

我的节点 js 服务器代码:


    const app = require("express")();
    const server = require("http").createServer(app);
    
    const io = require("socket.io")(server, {
        cors: {
          origin: '*',
        }
      });
    
    io.on("connection", () => {
        console.log("Connected!");
    });
    
    var redis = require('redis');  
    var url = "redis://@localhost:6379"; 
    //var redis = require('redis-url').connect();
    var client = redis.createClient(url);  
    //var client = redis.createClient();
    client.on("error", function(error) {
      console.error(error);
    });
    
    client.on('message', function(channel, msg) {  
      console.log("Message received: "+msg);
      io.sockets.emit(msg);
    });
    
    client.subscribe('JoinCall');
    
    console.log('starting server on 8001...');
    server.listen(8001);

我的 Laravel 发布消息的代码:


    Redis::publish('JoinCall', "testing123");
    \Log::Debug("message published on JoinCall ");

我的 Laravel redis 设置:

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

        

问题出在我的 laravel redis 设置中

在config/database.php中,有一个前缀应用于频道名称;我不得不评论它

    'redis' => [
    
            'client' => env('REDIS_CLIENT', 'predis'),
    
            'options' => [
                'cluster' => env('REDIS_CLUSTER', 'redis'),
                //'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
            ],