1

我将 Laravel Echo 与存在通道一起使用。我所有的活动都在工作..here()、.joining() 和 .leaving()

假设用户是第一个加入此在线状态频道的用户。当其他用户加入 .here() 和 .joining() 事件时,将允许填充在线用户列表,包括他们的 ID 和姓名。

如果用户在加入后更新了他们的名字怎么办。发生这种情况时,所有其他用户都不会收到更新,让他们知道在线频道中的一个用户的名称已更新。

我想实现这一点,我希望这样当一个用户对从 Broadcast::channel 返回的属性之一进行更新时,例如 name 属性,那么在场频道中的所有其他用户应该能够以某种方式知道更新已经完成并获取更新的数据

我想我可以通过耳语事件触发它,或者我可以触发各种广播事件来“通知用户”更新。然而,我认为我的“事实来源”应该是我的存在渠道,这就是我建立和维护我的“在线用户”列表的地方。

我希望我是有道理的.. 那么有没有办法强制 .here() 检索存在通道内所有用户的新列表并从后端检索他们更新的属性?

非常感谢

4

1 回答 1

0

结帐广播模型更新可能是您正在寻找的想法,https://laravel.com/docs/8.x/broadcasting#model-broadcasting,然后用户更新他的模型,您可以通知他所在的频道。小心批量分配。您必须调用 User $user->save() 才能检测到更改。

于 2021-08-18T15:24:16.443 回答