2 回答

TA貢獻1909條經驗 獲得超7個贊
我找到了解決我的問題的方法!
事實上,我只是沒有正確查看 Laravel-echo-server 發(fā)出的日志。
[2:54:48 PM] - Eri_5PZDB5gkvShrBBBH authenticated for: private-App.User.4016
[2:54:48 PM] - Eri_5PZDB5gkvShrBBBH joined channel: private-App.User.4016
Channel: ami_database_private-App.User.4016
Event: App\Events\UpdateRequest
如果仔細觀察,我的用戶加入了頻道,private-App.User.4016因為這部分是由 Laravel Echo 在客戶端管理的。
但是如果我們看下面兩行,我們會看到當我的事件被觸發(fā)時,它會在通道上發(fā)布,ami_database_private-App.User.4016因為這部分是由 Laravel 管理的,并且默認情況下會為 Redis 條目添加前綴。
只需轉到該config/database.php文件并編輯以下代碼:
'redis' => [
// ...
'options' => [
'cluster' => env('REDIS_CLUSTER', 'predis'),
'prefix' => Str::slug(env('APP_NAME', 'laravel'), '_').'_database_',
],
// ...
],
到
'redis' => [
// ...
'options' => [
'cluster' => env('REDIS_CLUSTER', 'predis'),
'prefix' => '',
],
// ...
],
這樣,Laravel 就沒有在他發(fā)布事件的頻道名稱前加上前綴,一切都恢復正常!
希望能幫助到你 !

TA貢獻1765條經驗 獲得超5個贊
您也可以將此前綴添加為 MIX_ 環(huán)境變量,或將其添加到前端和后端項目的管道環(huán)境中,并將其附加到通道或編寫名為 echoListen('channel-name') 的包裝函數(shù),該函數(shù)返回回聲實例。
const echoPrivate = (channel) => {
return new Echo({
...options
}).private(process.env.MIX_CHANNEL_PREFIX + channel);
};
const echoChannel = (channel) => {
return new Echo({
...options
}).channel(process.env.MIX_CHANNEL_PREFIX + channel);
};
export {
echoPrivate,
echoChannel,
};
- 2 回答
- 0 關注
- 335 瀏覽
添加回答
舉報