PHP应用中关于在线的问题

SueYY 发布于 2011/06/30 09:04
阅读 211
收藏 0

有这么个产品,就是一个网上播放器,FLASH制作的。有简单的用户系统,需求是登录用户只能打开一次播放器,说白点就是不能双开。

这个原理很简单,比如说,可以在用户表增加一列“登录状态”,来记录是否登录过了!

但是问题是,如果非正常退出的话,如果清除这个状态。

这个在线和论坛还是有些不一样的,论坛可以记录用户每次的点击更新动作时间,如果长时间不操作,我们可以认为已经下线了。

但是现在这个是个播放器,只是在播放音频,用户的操作动作不是很多。

实现这个需求有没有更好的解决方式呢????

谢谢! 

加载中
1
清凌渡
清凌渡
心跳检测,用AJAX每隔一段时间向服务器发送一个“我还在线”的消息。。
0
SueYY
SueYY
让客户端发每隔一段时间发?那岂不是会累死?
0
szmneo
szmneo

引用来自“SueYY”的答案

让客户端发每隔一段时间发?那岂不是会累死?
每隔一段时间ajax请求一下和你说的“记录用户每次的点击更新动作时间”一个道理吧
0
Andre.Z
Andre.Z
记录点击要累死,隔个几分钟发一次更轻松。那个状态改成过期时间,隔几分钟重置一下。否则,你还要写个东西去清理状态。
0
Eric
Eric
打开那个网站的时候发送一个IP地址,关闭的时候把IP清理掉。每次打开一个新网页的时候都检查一下打开网页的那个IP地址是不是存在你的IP库里面(即你的浏览器是不是已经打开了那个网页)
Eric
Eric
@Andre.Z: 谢谢指出,这个我倒没有注意到~
Andre.Z
Andre.Z
对于共用一个外网IP的内网机器来说,这样就不对了。
0
TestXd
TestXd
这个和用SESSION统计在线人数没多大区别吧···把SESSION放到数据库中。
0
konakona
konakona

就是隔几分钟发送一次ajax请求到服务器,这是用于确认用户是否还在线的方法。(俗称SOCKET)

如果是在线短信,就真的是心跳检测了,200毫秒一次。

返回顶部
顶部