2

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

更新

使用 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 :)

4

1 回答 1

5

您可以使用状态通道来实现此目的。然后,您可以在用户进入或离开频道时使用在线状态 webhook通知您的服务器。

于 2017-10-25T10:29:48.373 回答