首页 > 解决方案 > Laravel 广播适用于一个用户

问题描述

我正在按照互联网上的一个简单示例进行通知跟踪。不幸的是,到目前为止,我已经设法让它只为一个用户工作。当我打开两个用户时,从 A 到 B 的消息有效,但从 B 到 A 的消息不起作用。有人能帮我吗?

频道.php

Broadcast::channel('App.User.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
});

引导程序.js

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

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: 'some-key',
    cluster: 'mt1',
    forceTLS: true
});

global.js

    var urlChannel = 'App.User.' + $('#user_logado_id').val();
    window.Echo.private(urlChannel)
        .notification((notification) => {
            addNotificacao(notification);
        });

向用户发送通知。

$user->notify(new NotificacaoPadrao($param));

我希望向所有用户发送通知。

标签: phplaravelbroadcastpusherlaravel-echo

解决方案


那是因为第一个用户的频道是 App.User.1,第二个是 App.User.2。您应该为他们创建一个共享的频道。例如:App.Channel.1-2。


推荐阅读