Laravel - Pusher - 检测用户何时离开网站或离开页面

Laravel - Pusher - Detect when a user is no longer in the website or leaves the page

我正在开发的实时应用程序遇到问题。我的问题是关于使用 Pusher 的用户状态。例如,我想获得正确的方法来检测用户何时离开页面或保持一段时间不活动以将其状态设置为 'offline'。我怎样才能做到这一点?我几乎可以肯定不建议在客户端开发此功能,它应该在服务器端开发,但是如何呢?如果他们还在那里,我如何询问客户?我应该创建一个命令并 运行 它与 cron 一起使用吗?有什么机制可以让服务器'detect' socket 断开连接吗?任何帮助将不胜感激,谢谢!

更新

使用 NoseJS 和 SocketIO 真的很简单,你只需要写:

io.on('connection', function (socket) { // When client connects
    socket.on('disconnect', function() { // Listen to disconnections from SERVER-SIDE
        // Logic when a user disconnects. This is what I want!
    });
});

但是在Laravel,我只有这个:

// A Laravel Event Class that implements the shouldBroadcast interface...
    public function broadcastOn()
    {
        // I think here is where connections happen, but I don't know how to detect 'disconnections' :(
        return new PresenceChannel('someString');
    }

PD:我正在使用 Laravel Echo 和 Pusher :)

您可以使用presence channels to achieve this. You can then use presence webhooks在用户进入或离开频道时通知您的服务器。