微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel echo 只收听公共频道

如何解决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 举报,一经查实,本站将立刻删除。