【问题标题】:Laravel Echo How to take an action when the users joins a channel?Laravel Echo 当用户加入频道时如何采取行动?
【发布时间】:2017-09-26 16:21:20
【问题描述】:

使用 Laravel 5.5、vue.js 和 laravel echo。

我想应用一条指令,只要尝试加入频道的用户成功加入,就会发生一些事情。

在我的例子中,如果它是一个成功的连接,它会将一个对象添加到一个数组中。

Echo.join('chat' + e.thread.id)
    .listen('ThreadPosted', (e) => {
         console.log("ThreadPosted");
     });

如何做到这一点?

【问题讨论】:

  • AFAIK 只有在你加入成功或者你想监听其他用户加入频道时才会调用监听回调?
  • 我希望在尝试加入频道的用户成功加入时发生一些事情。监听回调是当您已经加入频道并监听广播的任何事件时。
  • 在this link 的配置标题下,您可以看到Echo 有一个socketId,您可以使用它来检查活动连接
  • 检查文档并尝试但没有任何效果。

标签: laravel laravel-echo


【解决方案1】:

你需要在“这里”调用方法:

Echo.join('channel')
.here((users) => {
    // client has joined successfully
 })
.listen('Event', callback );

如Laravel echo documentation 中所述:

一旦频道加入成功,“here”回调将立即执行,并会收到一个数组,其中包含当前订阅频道的所有其他用户的用户信息。

还有另外两个可用的回调,“加入”和“离开”

新用户加入频道时会执行joining方法,离开频道时会执行leaving方法。

Echo.join('channel')
.joining((user) => {
    // a user has joined.
})
.leaving((user) => {
    // a user has left.
});

请记住,所有这些方法都适用于 Presence Channels,它主要用于聊天应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-12
    • 2020-07-12
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2017-06-24
    相关资源
    最近更新 更多