6
回答
论坛中,如何知道对方是否在线?
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

如题:类似人认网,开心网,或则我们的oschina是如何检测到好友是否在线的啊?

<无标签>
举报
期待年轻
发帖于7年前 6回/450阅
共有6个答案 最后回答: 7年前

web 项目的在线状态是比较难的,关键是用户直接关闭浏览器或者是掉线的时候

可参考oschina的做法:http://www.oschina.net/code/snippet_12_614

该功能目前并没有放出来。

以前有看过别人网站的实现方法,是在页面上嵌了一个js代码,每个几秒钟就往服务器发心跳包,如果超过时间服务器没接收到心跳包就认为这个用户下线了,这个就比较精确一些,不过负载要大很多。

其实如果不是特别精确,可以把用户在线状态放在缓存里面,缓存设置5分钟失效就可以了。

然后用户每次操作都去更新这个缓存标记,这样系统的开销也比较小一些。

引用来自#4楼“jing31”的帖子

其实如果不是特别精确,可以把用户在线状态放在缓存里面,缓存设置5分钟失效就可以了。

然后用户每次操作都去更新这个缓存标记,这样系统的开销也比较小一些。

oschina就是这样实现的:)

我觉得这种方式够用了,毕竟web应用对在线状态的准确性要求不是特别高。

引用来自#5楼“红薯”的帖子

引用来自#4楼“jing31”的帖子

其实如果不是特别精确,可以把用户在线状态放在缓存里面,缓存设置5分钟失效就可以了。

然后用户每次操作都去更新这个缓存标记,这样系统的开销也比较小一些。

oschina就是这样实现的:)

我觉得这种方式够用了,毕竟web应用对在线状态的准确性要求不是特别高。

嘿嘿,不小心采用了一样的方式~

顶部