无法使用 Redis 和 Laravel 5.3 在私人频道上广播通知



我正在用Laravel-Redis-socketio-laravelecho进行实时通知。到目前为止,我能够广播到耻骨频道,但依靠私人频道。
我的bootstrap.js:

import Echo from "laravel-echo"
window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001'
});

laravel-echo-server.json:

"authHost": "http://localhost",
    "authEndpoint": "/broadcasting/auth",
    "clients": [
        {
            "appId": "{{Omitted purposely}}",
            "key": "{{Omitted purposely}}"
        }
    ],
    "database": "redis",
    "databaseConfig": {
        "redis": {},
        "sqlite": {
            "databasePath": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": true,
    "host": null,
    "port": "6001",
    "protocol": "http",
    "socketio": {},
    "sslCertPath": "",
    "sslKeyPath": ""

在我的通知课中,我的广播((为:

public function broadcastOn() {
        return new PrivateChannel('my-channel');
    }

和我的客户端是:

Echo.private('my-channel')
    .notification((notification) => {
        console.log('I am here');
    });

一切与公共渠道都可以正常工作,但是在私人渠道中,命令行启动Laravel-echo-Server后显示以下内容:

错误:连接Econnrefuse 127.0.0.1:80。 发送身份验证请求的错误。

您必须通过在 config/app.php

中添加以下行添加broadcast authentication路由

AppProvidersBroadcastServiceProvider::class,

以便在您的routes/channel.php中检查特定的警卫并根据您的条件返回1或0

最新更新