Laravel 加入频道时回显发送数据

Laravel echo send data when joining channel

客户端刚加入频道时如何接收数据?

像这样:

Echo.channel('channel-name')
    .onjoin(function (data) {
        console.log(data) // Data received from server
    })

客户端一加入,服务器就应该响应数据,最好是PHP。

编辑:

.这里会显示每个连接用户的数据,这不是我想要的。


我认为状态频道就是我要找的。 https://laravel.com/docs/8.x/broadcasting#presence-channels

// Define channel
Broadcast::channel('channel-name', function () {
    if (/* Condition if user is allowed to join channel */) {
        return ['data' => 'your Data'];
    }
});


// Join channel
Echo.join('channel-name')
    .here(function(data) {
        console.log(data)
    })


// Event
class Event implements ShouldBroadcast
{
    public function broadcastOn()
    {
        return new PresenceChannel('channel-name');
    }
}

存在频道return 客户端订阅时有关频道中用户的信息。 如果您需要来自服务器的其他数据,则可以向服务器发送 post 请求以获取信息。您可以在 pusher:subscription_succeeded 绑定中调用它,以便在建立订阅后立即发生。