Laravel echo 只收听公共频道

时间:2021-06-10 07:50:49

标签: laravel 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,
        ],
    ],

0 个答案:

没有答案