【问题标题】:Is there a way to trigger a backend event when user leaves a channel in Laravel-Echo?当用户离开 Laravel-Echo 中的频道时,有没有办法触发后端事件?
【发布时间】:2018-10-25 16:02:13
【问题描述】:

我是 laravel 和 laravel-echo 的新手,如果这是一个愚蠢的问题,请原谅,但是有没有办法在用户离开状态频道时触发后端事件? 使用 pusher,我可以为存在事件设置 webhook,但是 redis 有什么类似的吗?

【问题讨论】:

    标签: php laravel redis laravel-echo


    【解决方案1】:

    当然,您可以触发页面的存在通道“onLoad”。使用 Vue 的示例可能在 created()beforeCreate() 方法内。否则,在 jQuery 中,您可以将其置于“就绪”闭包中:

    Echo.join('presence-event')
        .joining((user) => {
        ....
    });
    

    ...会触发加入出席频道,然后,

    Echo.join('presence-event')
        .leaving((user) => {
        .....
    });
    

    ...帮助您检查某人何时离开

    【讨论】:

    • 您好,感谢您的回答。尽管这适用于大多数情况,但它不会为频道中的最后一个用户运行代码。
    • 注意:我正在尝试使用它来更新聊天中的用户状态(在线/离线),因此最后一个用户在用户离开页面后最终在线。为了克服这个问题,我安排了一个命令,每 1 分钟检查一次频道的用户,但是有一个可观察的事件会更好。我正在尝试使用 Redis::psubscribe 监听 redis 事件,但我还没有任何成功(真的不知道如何使用 redis ...)。注2:抱歉英语不好XD
    • 还有.here(users)方法可以用来查找在线用户。否则,如果最后一个用户离开,您可以手动更新在线/离线状态。
    • @MoacirQueiroz 你找到解决办法了吗?
    猜你喜欢
    • 2013-04-02
    • 1970-01-01
    • 2017-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    相关资源
    最近更新 更多