阅读(3380) (10)

Laravel 8 授权 Presence 频道

2021-06-30 16:36:25 更新

所有在线频道也是私有频道;因此,用户必须 被授权才能访问。但是,在为 Presence 频道定义授权回调时,如果用户有权加入该频道,则不会返回 true 。 相反,你应该返回有关用户的数据数组。

授权回调返回的数据将可供 JavaScript 应用程序中的 Presence 频道事件侦听器使用。 如果用户未被授权加入 Presence 频道,则应返回 falsenull

Broadcast::channel('chat.{roomId}', function ($user, $roomId) {
    if ($user->canJoinRoom($roomId)) {
        return ['id' => $user->id, 'name' => $user->name];
    }
});