【问题标题】:laravel echo users in presence channel not updated, how to trigger refresh/update?存在通道中的 laravel echo 用户未更新,如何触发刷新/更新?
【发布时间】:2021-02-04 13:42:49
【问题描述】:

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

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

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

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

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

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

非常感谢

【问题讨论】:

    标签: laravel laravel-echo laravel-websockets


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 1970-01-01
      • 2020-06-23
      • 2020-05-28
      • 1970-01-01
      相关资源
      最近更新 更多