Cod*_*Guy 2 html javascript php chat
我有一个简单的聊天客户端设置,允许用户使用用户名登录并将他们写入的消息存储在sql数据库中.每隔3秒,数据库就会打印出所有行.所以它基本上是一个聊天客户端.
我想列出一个在线人员名单.我怎样才能做到这一点?当有人关闭浏览器时,我怎么能感觉到?
现在我正在拉用户名
$name = $_COOKIE["name"];
Run Code Online (Sandbox Code Playgroud)
如果这个值是空的,我知道他们离开了.但是一旦他们离开,现在知道他们的用户名是什么已经太晚了,所以我无法跟踪究竟是谁离开了.
想法?我是php,javascript和html的新手,所以请记住:)
当有人关闭窗口时,很难向服务器发送最后一个请求,因为当用户想要关闭窗口时,浏览器通常不会等待JS执行完成(如果是这样onbeforeunload).
每当我遇到这样的情况时,我倾向于使用onbeforeunload发送最终请求(这种情况发生得很快并且通常在浏览器窗口关闭之前完成),但也会实现超时功能.超时功能将如下工作:
每次用户向服务器发送内容时,服务器都会将其识别为"仍在那里".同时,客户端设置一个45秒的计时器.如果用户未在45秒内输入任何内容,则客户端会自行发送"静止"信号以保持连接状态.
现在,服务器应该removeInactive()每60秒执行一次例程(允许15秒慢连接边距,因此45/60秒),这将删除在过去60秒内没有发送"静止"信号的任何用户.
到目前为止,这个系统对我来说很好,你可以亲自尝试一下.