基本上我有一个聊天,使用AJAX, PHP。
我让客人通过填写他们的名字并点击login来登录。它填充会话$_SESSION['guest']
。
现在,当他们关闭浏览器或其他东西时,一旦会话结束,我希望它在聊天
中说"用户名已离开聊天室".
但是我不确定我该怎么做。有什么办法吗?也许我可以填充过去5分钟内活跃的用户数组,如果没有,从数组中删除,它将把他们踢出聊天。
任何想法?
您可以在后端有一个用户数组,其中包含上次ping的时间戳。
然后,客户端可以使用ajax通过每隔几秒发送一个新的时间戳来更新后端。
当你的后端被其中一个用户更新时,你的后端可以对所有用户检查发送到当前时间的最后时间戳,如果它超过2分钟或者你可以告诉他们已经离开聊天并输出消息。
如果没有直接连接到浏览器,您将无法主动判断它们是否已连接。我建议使用ping-like的解决方案,要求浏览器每n
秒ping一次服务器以保持聊天"活跃"。
如果浏览器没有与服务器"签入",服务器假定它们已经断开连接,并向另一个参与者报告。
也就是说,如果你能更深入一点,谷歌一下"javascript实时聊天",你就会有几条成功的道路。
为聊天客户端添加jQuery .unload()事件。当他们离开聊天时,它将被触发,你可以使用它来发送最后一位数据来显示该消息。
这里是文档:Link.
的例子:
$(window).unload(function() {
//send message to server informing it of client leaving
});