我正面临着我正在开发的实时应用程序的问题。我的问题是关于使用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:)