Laravel echo 只收听公共频道

问题描述

我正在使用 Laravel WebSockets,它监听所有频道,但 Laravel Echo 不监听私人频道,它只监听公共频道

Websocket Log

频道.PHP

use Illuminate\Support\Facades\broadcast;

broadcast::channel('user.{id}',function ($user,$id) {
    return true;
});

事件类别

class TicketAssigned implements ShouldbroadcastNow
{
    use dispatchable,InteractsWithSockets,SerializesModels;

    public $message;

    public $user;

    public function __construct(User $user,$message)
    {
        $this->message = $message;
        $this->user = $user;
    }


    public function broadcastOn()
    {
        return new PrivateChannel('private-user.'.$this->user->id);
    }



    public function broadcastAs()
    {
        return 'user.created';
    }
    
}

这是我的 app.js 文件,其中包含我的 Laravel Echo 配置

import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');

window.Echo = new Echo({
    broadcaster: 'pusher',database: "redis",key: process.env.MIX_PUSHER_APP_KEY,cluster: process.env.MIX_PUSHER_APP_CLUSTER,wsHost: window.location.hostname,wsPort: 6001,wssport: 6001,disableStats: true,enabledTransports: ['ws','wss'],authEndpoint: "/broadcasting/auth",});

window.Echo.private('user.'+window.Laravel.user) //public channel work
    .listen('.user.created',(message) => {
        console.log(message);
    });

websockets.PHP

    'apps' => [
        [
            'id' => env('PUSHER_APP_ID'),'name' => env('APP_NAME'),'key' => env('PUSHER_APP_KEY'),'secret' => env('PUSHER_APP_SECRET'),'enable_client_messages' => true,'enable_statistics' => false,],

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)