网页聊天,如何确定用户退出?

发布于 2022-08-24 00:38:42 字数 442 浏览 26 评论 0

我想做一个类似于Omegle的随机网页聊天的小应用,有一些自己新加的东西,但是本质上是个网页聊天的东西。但是我是个web开发新手。

问题在于,如何维持用户的登录状态呢?也就是当已经登陆的用户刷新,关闭网页时,也可以退出,而不是使用一个链接让用户退出。

目前,已经尝试的方法有:

1、 使用ajax刷新消息,登录。退出时响应<body>的onunload事件,向服务器发送一个post。
问题:对浏览器的支持不一,导致有的浏览器没反应,或者原因是使用JQuery的$.post,或许在onunload里不能响应一些异步的事件?

2、 使用长连接,维持登录状态.
问题:长连接是否可以感受到用户的断开呢? 如果想使用类似于PHP的语言开发,那长连接会不会很占系统资源?
3、 使用Flash实现.
问题: 这是我现在能想到的实现方法,但是是不是有点简单问题复杂化了?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我爱人 2022-08-31 00:38:42

1、onunload事件存在浏览器兼容性问题,参见:http://w3help.org/zh-cn/causes/SD9026

2、如果一直保持长连接,那么即使客户端断开,服务端也不一定能知道客户端已经断开,所以这里可能还需要做一些心跳记录,比如每个用户保持一个心跳flag,每格几秒更新一下最后心跳时间,当检测最后时间很久没更新后,退出这个死循环,关闭这个HTTP连接。参考来源:http://www.phpfans.org/?p=79

资源占用不会小建议使用Node.js来试试:http://cnodejs.org/blog/?p=1074
另外一个Node.js的聊天项目:https://github.com/ry/node_chat

3、Flash没有精力了解

∞梦里开花 2022-08-31 00:38:42

呐,最好的方式呢还是心跳包啦,当然也可以心跳包+退出按钮+onunload这样。
心跳包是什么自己搜索。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文