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

问题描述

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

像这样:

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

当客户端加入时,服务器应立即响应数据,最好使用 PHP

解决方法

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

,

编辑:

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


我认为状态频道正是我要找的。 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');
    }
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...