用户名在会话结束时离开了聊天消息?

时间:2013-06-18 15:39:39

标签: php jquery ajax

基本上我使用AJAX,PHP进行聊天。

我通过填写姓名并点击登录来让客人登录。 它填充了会话$_SESSION['guest']

现在,当他们关闭浏览器或其他内容时,一旦会话结束,我希望它在聊天中说出来

“用户名已离开聊天”。

但我不知道我该怎么做。 有办法吗?也许我可以填充过去5分钟内活跃的用户数组,如果没有,请从数组中删除它,这将使他们脱离聊天。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可以在后端拥有一组用户,其中包含最后一次ping的时间戳。

然后,客户端可以通过每隔很多秒发送一个新的时间戳来使用ajax更新后端。

虽然您的后端正在由其中一个用户更新,但您的后端可以检查所有用户检查发送到当前时间的最后时间戳,如果超过2分钟或者您可以告诉他们已离开聊天的时间输出信息。

答案 1 :(得分:0)

如果没有与浏览器的直接连接,您将无法主动判断它们是否已连接。我建议使用类似ping的解决方案,要求浏览器每隔n秒对服务器执行ping操作,以保持聊天“活跃”。

如果浏览器没有“检入”服务器,则服务器假定他们已断开连接并向其他参与者报告。

也就是说,如果你能够更深入地潜水,谷歌“javascript实时聊天”,你将拥有several paths to success

答案 2 :(得分:0)

将jQuery .unload()事件添加到聊天客户端。当他们离开聊天时,它将被触发,您可以使用它发送最后一位数据来显示该消息。

以下是文档:Link

示例:

    $(window).unload(function() {
      //send message to server informing it of client leaving
    });