【发布时间】:2013-01-03 10:54:36
【问题描述】:
我有一个 PHP 应用程序,它具有使用 nodejs 和 socket.io 的聊天功能。
我现在需要做的是,如果用户休眠超过 15 分钟,则将用户注销。
会话在 PHP 应用程序和Nodejs 服务器之间共享。所以nodejs 服务器知道用户上次登录的时间或他/她上次活动的时间。
我正在考虑向 socket.io 客户端发送logoff 命令,如果我能区分心跳和来自客户端的消息,那将非常容易。
由于 PHP 应用程序只知道用户在页面重新加载或导航时的活动,因此用户在休眠时仍可能在聊天,而 PHP 应用程序将不知道用户是否在聊天。所以从会话中检查用户的最后一个活动是行不通的。
所以这里的主要问题是,我能否识别一个仅发送心跳超过 15 分钟(无发射)的客户端?
【问题讨论】:
-
根据聊天活动更新会话,如果 15 分钟内没有任何活动,则在下次心跳时注销不是正确的操作吗?