无法从频道中删除laravel_database_前缀

时间:2019-08-05 14:03:39

标签: php laravel laravel-echo

我正在设置Laravel回显以广播事件。但是每当我尝试向频道广播时,频道名称都会得到一个自动前缀:'laravel_database_'

我尝试将事件内的返回内容切换为常规的“香奈儿”,如下所示:

public function broadcastOn()
{
return new Channel('public');
}

但是当我查看laravel-echo-server日志时,发现它仍在广播:'laravel_database_public'。

这样,我需要在JS中执行以下操作:

Echo.channel('laravel_database_public').listen('MessageSent', ({message}) => {
                console.log(message);
            });

但是,当然,我想删除前缀(或弄清楚前缀为什么存在)。希望有人可以帮我解决这个问题。预先感谢。

3 个答案:

答案 0 :(得分:1)

这是可以在

下的config/database.php(并且我相信甚至可以移动)中进行配置的
'redis' => [
    'options' => [
        'prefix' => // change here.
    ]
]

答案 1 :(得分:1)

接受的答案不适用于laravel-echo-server

解决方案是让整个Redis Laravel配置保持不变,并运行{{1}中带有正确^1.6.0选项的laravel-echo-server版本keyPrefix }}配置文件:

laravel-echo-server.json

Source

答案 2 :(得分:1)

在Laravel 7上,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_'),
        ],
    ]

因此,它将在.env文件中搜索您的REDIS_PREFIX变量,如果没有,则会生成laravel_database_或根据您在{{ 1}}文件。

您要做的就是设置APP_NAME。您可以将其保留为空,以便根本没有前缀。