为什么使用 Laravel 的广播 "toOthers" 而不是在广播中更新所有人(包括自己)?

Why use Laravel's broadcast "toOthers" vs update everyone on broadcast (including self)?

Laravel 的 broadcast toOthers 方法用于从广播的接收者中排除当前用户。官方文档包括一个通过 Javascript w/ 端点将任务添加到列表的示例,然后广播添加以更新其他用户。

axios.post('/task', task)
    .then((response) => {
        this.tasks.push(response.data);
    });

...

Echo.channel('orders')
.listen('TaskCreated', (e) => {
    this.tasks.push(e.task);
});

如果创建任务的用户收到广播,则会将重复的任务添加到他们的列表中。所以TaskController内部使用了toOthers方法:

broadcast(new TaskCreated($task))->toOthers();

我在各种 Laravel Echo tutorials/videos/articles 中看到过类似的任务列表示例,它们都使用这种模式 - 但我不明白为什么。

鉴于此示例,我们不简单地从广播中与其他人一起更新当前用户的任务列表的原因是什么?

为什么我们要复制代码从 axios 响应和广播监听器推送,然后需要使用 toOthers?

(我知道无论哪种方式都没有什么大不了的。尽管在处理更复杂的响应处理和许多不同的侦听器时这似乎很重要。)

使用 toOthers 意味着更少的数据使用和更快的当前用户响应。例如,如果您的广播任务已排队并且队列已备份,您当前的用户仍然会立即看到更改。