【问题标题】:Not Able to Broadcast notifications on Private Channel with Redis & Laravel 5.3无法使用 Redis 和 Laravel 5.3 在私有频道上广播通知
【发布时间】:2017-09-23 18:51:48
【问题描述】:

我正在使用 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": ""

在我的通知类中,我将 broadcastOn() 设置为:

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

我的客户端是:

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

使用公共频道一切正常,但使用私人频道,命令行在启动 laravel-echo-server 后显示以下内容:

错误:连接 ECONNREFUSED 127.0.0.1:80。 发送身份验证请求时出错。

【问题讨论】:

    标签: laravel-5 redis socket.io laravel-echo


    【解决方案1】:

    您必须通过取消注释 config/app.php 中的以下行来添加 broadcast authentication 路由

    App\Providers\BroadcastServiceProvider::class,

    这样在您的routes/channel.php 中将检查特定的守卫并根据您的条件返回 1 或 0

    【讨论】:

      猜你喜欢
      • 2020-08-25
      • 2017-04-28
      • 2018-03-03
      • 2017-07-06
      • 2018-02-23
      • 2021-06-01
      • 2020-07-28
      • 2021-11-15
      • 2021-07-15
      相关资源
      最近更新 更多