QQ显示离线(qq好友在什么情况下显示离线)
QQ显示离线(qq好友在什么情况下显示离线),新营销网红网本栏目通过数据整理汇集了QQ显示离线(qq好友在什么情况下显示离线)相关信息,下面一起看看。
即时通讯是目前互联网上最流行的交流方式,各种即时通讯软件层出不穷。所以今天我们就把重点放在好友在线状态/群友在线状态上,思考一下实现原理,以及如何测试这个功能。
你在使用的时候,有没有和我一样的以下疑问
为什么可以在好友列表中实时看到qq好友的在线和离线状态?
可以在群友列表中看到当前群友的在线和离线状态。是如何实现的?
测试工程师应该如何测试其中使用的技术?
带着这些问题,我搜集了一些资料进行了解、学习和,现在分享性病网给大家。
我理解的好友在线/离线状态的流程是
当用户A登录成功后,服务器会将用户A的在线状态写入缓存(高可用性缓存集群);userid-A—“登录——”服务器—”在缓存中设置状态(userid:在线)
当用户A注销(注销)时,服务器需要找到用户A的缓存,将联机状态(online)改为脱机状态(offline);userid-A—“登录——”服务器—”缓存中的更新状态(userid-A:脱机)
其他所有用户的状态都会存储在缓存中,所以当用户A登录时,从数据库中找出用户A的好友,然后从缓存中找出这些好友对应的在线状态,这样用户A就可以看到哪些好友在线,哪些离线;
userid-A——《我的朋友状态——》获取数据库中的朋友userid——《获取缓存中的用户状态(userid1:online,userid2:offline,userid3:offline,userid4:online……)
上述过程考虑的主要测试点如下
在没有缓存的情况下,用户A登录时,正常写入缓存(大家应该对缓存有所了解,比如memcache、redis等。如何检查缓存?不知道的同学可以自行咨询或查阅相关资料)
当用户注销时,缓存中相应的值设置为离线;
检查缓存的有效性;
离线/在线时用户A的好友用户B的状态显示是否正确;
用户A的一些朋友在线或离线。用户A查看好友状态时,状态显示是否正确;
redis连接异常或超时时该怎么办;
等等.可以思考需要测试的功能点,了解开发和实现的流程,尽可能覆盖测试点。
写到这里,其实还有很重要的一点比如用户A的朋友用户B在线,突然,用户B离线了。用户A能立刻看到他的好友从线上变成线下吗?这也是我们测试人员需要考虑的一个功能点!我不确定是不是实时的。如果有人知道,可以分享一下。如果实时性要求高,可以采用推送同步;如果实时性要求不高,可以采用轮询拉同步。
然后普及下轮询的拉模式和推模式,如下
什么是轮询拉模式?
例如如果用户userid-A想要查看他的朋友的在线状态,他必须每分钟轮询服务器以获得他所有朋友的在线状态。缺点是有一分钟的延迟,期间好友状态不变时,请求服务器还会拉大量无效请求的资源临时使用服务器。这种方法可能每个人在工作中都会经常用到,通过不断轮询来获取服务器的信息。
推的方法是什么?
继续举例说明如果用户userid-A想看到好友用户userid-b的在线状态,当用户userid-B离线时,会从在线变为离线(更新缓存离线),会将这种状态变化的通知推送给用户userid-B的在线反向好友,这样会变得实时,但缺点是如果在线好友数量较多,用户状态的任何变化都会传播大量的实时通知,需要考虑承载能力。
你可以想,群友的在线同步过程应该是怎样的?是轮询还是推送?如果以后有时间,可以继续讨论。
Qq离线显示
更多QQ显示离线(qq好友在什么情况下显示离线)相关信息请关注本文章,本文仅仅做为展示!