0

基本上我有一个聊天,使用AJAX,PHP。

我让客人通过填写他们的姓名并单击登录来登录。它填满了会话$_SESSION['guest']

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

“用户名已离开聊天”。

但我不确定我将如何做到这一点。有什么办法吗?也许我可以填充过去 5 分钟内活跃的用户数组,如果没有,从数组中删除,它会将他们踢出聊天。

有任何想法吗?

4

3 回答 3

1

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

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

当您的后端由一个用户更新时,您的后端可以检查所有用户检查发送到当前时间的最后一个时间戳,如果超过 2 分钟或者您可以告诉他们已经离开聊天并输出消息.

于 2013-06-18T15:44:54.267 回答
0

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

这是文档:链接

例子:

    $(window).unload(function() {
      //send message to server informing it of client leaving
    });
于 2013-06-18T15:46:07.540 回答
0

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

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

也就是说,如果您能够更深入地了解 Google“javascript 实时聊天”,那么您将拥有多条成功之路

于 2013-06-18T15:44:56.410 回答