技术领域
[0001] 本发明总体涉及无线应用领域,更具体地涉及用于获取wap用户在线状态的方法和设备。
相关背景技术
[0002] 随着便携式设备的普及和无线应用协议(wap)的广泛使用,人们在生活中开始越来越多地利用便携式设备,例如通过便携式设备浏览网页、与朋友联系、播放网络音频视频文件等。这是因为wap使移动Internet有了一个通行的标准,其目标就是将Internet的丰富信息及先进的业务引入到移动电话等便携式设备之中。
[0003] 在上述这些应用中,例如人人网之类的社交网络逐渐成为人们与朋友保持联系并且分享情感的不可或缺的工具。通过便携式设备随时随地地登录此类社交网络与在线的好友聊上几句无疑对使用社交网络的wap用户而言具有巨大的吸引力。因此,能通过便携式设备登录社交网络并能够知道好友是否在线或使好友知道自己是否在线对于用户而言就变得十分重要。
[0004] 大部分社交网络基于超文本传输协议(HTTP)协议进行通信,而HTTP协议是无状态协议,这种无状态协议本身并不支持用户在线机制。换言之,无状态协议仅能简单地响应请求,但是并不记忆该请求是否来自于同一个客户端或同一个用户。所以,这种协议本身无法支持用户在线状态的获取。
[0005] 因此,基于HTTP协议实现用户在线状态获取通常使用的是JavaScript/AJAX。具体而言,就是通过JavaScrip代码定时向服务器发送请求,从而通过该请求来通知服务器该用户在线。这样,其他用户就可以通过这种机制经由服务器来获取该用户的在线状态。
[0006] 然而,wap用户普遍使用的便携式设备大多都不支持用户在线系统所使用的上述机制,即,这些设备可能无法支持JavaScript/AJAX。这样,现有技术中赖以实现用户在线状态获取的机制也就无法通过便携式设备实现,这对于社交网络的用户而言是难以接受的。
具体实施方式
[0017] 在下文中,将参考图示借助于实施方式对本发明的用于获取wap用户在线状态的方法和设备进行详细地描述。
[0018] 附图中的流程图和框图,图示了按照本发明各种实施方式的设备和方法体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这取决于所涉及的功能。还要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0019] 现在,参考图1中用于获取wap用户在线状态的方法的流程图进行描述。
[0020] 如图1所示,在该方法的步骤S101中,拦截wap用户的主动访问。
[0021] 根据本发明的一个示例性实施方式,为了获取wap用户与服务器的交互,可以拦截wap用户对服务器的主动访问。
[0022] 根据背景技术中的描述可知,HTTP协议是无状态协议,这种协议无法记忆或记录通过该协议发起请求的用户或终端。而用户的在线状态是一种连续的过程,即,如果特定用户或终端在一段时间内始终都与服务器存在交互,那么可以推断该用户或终端处于在线状态,反之该用户或终端有可能已经离线。但是由于大部分wap用户只能使用HTTP协议发起请求并且不支持能够实现在线状态获取的JavaScript/AJAX机制,而无状态协议又不能记录HTTP请求的发起者,那么就无法将请求发起者与其发起的请求对应起来,进而也就无法断定在特定时段内用户或终端是否始终都与服务器存在交互。
[0023] 基于上述原因,必须寻求一种方式来获取wap用户与服务器的交互,进而将该wap用户与其发起的请求对应起来进行记录,才有可能获得特定时段内该wap用户的在线状态。
[0024] 因此,可以采用拦截wap用户发往服务器的每次主动访问的方式来获取并记录wap用户的身份(ID)和其在一段时间内发起的请求。
[0025] wap用户对服务器的主动访问例如可以包括wap用户的登录动作以及在登录之后发往服务器的任意请求。拦截以上这两种主动访问主要基于如下考虑:如果wap用户希望处于在线状态,则其首先需要进行登录动作,以向其登录的网站表明自己的身份。拦截该登录动作可以确定开始获取wap用户在线状态的时间点,即,用户的在线是以其登录开始的。在登录之后,wap用户可以开始使用网站提供的各种功能,在该过程中,wap用户可能需要向服务器发送各种请求。在拦截到wap用户的一次主动访问时,即可证明用户仍旧登录在该网站上并且正在使用该网站,这无疑可以推断出在这段时间内,用户处于在线状态。因此,根据本发明的示例性实施方式,拦截wap用户的主动访问是最终获取用户在线状态的首要步骤。
[0026] 根据本发明的实施方式,用户登录后发出的请求可以是针对Web页面的HTTP请求。虽然HTTP协议是无状态协议,但是在HTTP请求中可以获取发起请求的wap用户ID和发起该请求的时间。在此,我们将拦截到最后请求的时间称作最后访问时间。只要记录下该ID和该最后访问时间,就可以确定至少在当前时刻该wap用户是在线的。
[0027] 然而,wap用户对服务器的访问并非是连续不断的。换言之,wap用户基本上不可能每时每刻都对服务器进行主动访问。那么在一段时间内没有拦截到用户的主动访问的情况下,是否应该认为该wap用户离线就成为一个重要的问题。例如,wap用户在Web页面上点击一个链接,即进行一个主动访问之后,服务器可能向该wap用户返回了一个页面,例如该页面是一篇文章,那么在该wap用户浏览这个页面的期间,用户可能不会进行任何操作而专心地阅读文章,但是此时用户仍旧登录在该网站上没有离开,也就是说该用户仍旧处于在线状态。然而,在此期间,可能没有拦截到该用户的任何主动访问。在此情况下,判定用户离线显然是不合理的。所以,为了合理地判定用户的在线状态,首先需要知道wap用户已经有多久没有与服务器进行交互了。
[0028] 因此,根据本发明的示例性实施方式,方法包括步骤S102,该步骤计算wap用户的最后访问时间与当前时间的差值。即,将当前时间值减去wap用户的最后访问时间值来得到差值。根据本发明的实施方式,可以以各种合适的方式来表示当前时间值和用户的最后访问时间值。例如,设定一个时间点作为计时的起点。在应用中通常取历史上的某年某月某日某时作为起点,以从该点开始流逝的毫秒、秒、分钟、小时等来表示当前时间或最后访问时间。那么在计算两者的差值时进行减法计算即可,得到的差值的单位与计时单位一致,即毫秒、秒、分钟、小时等。本领域的技术人员应该理解,可以应用任何其他合适的方式对当前时间和wap用户的最后访问时间进行计时。
[0029] 何时计算上述差值也是需要考虑的一个问题。因为不断地计算显然是没有意义的,而且会消耗过多的系统资源。因此,根据本发明的实施方式,可以以预定义的时间间隔执行计算或以触发方式执行计算。
[0030] 在一个实施方式中,出于实现简单性的考虑,可以以预定义的时间间隔计算该差值,时间间隔例如5分钟。换言之,该计算可以每隔5分钟执行一次来获得差值。
[0031] 在另一个实施方式中,可以以触发方式执行计算。在该触发方式中使用的触发事件可以包括以下至少一个:拦截到wap用户的主动访问、其他用户的请求、定时器到时以及系统指令。例如,每当拦截到wap用户的主动访问时,就计算当前时间与最后访问时间的差值。当然,这时计算的差值为0,但是这种计算有时是必须的。例如,用户仅仅执行了一次登录操作,之后一段时间内可能没有任何主动访问。在此情况中,如果仅仅以预定义的时间间隔执行计算,得到的差值可能表示该用户仍旧处于离线状态,从而忽略了用户已经登录的事实,进而无法准确地获取用户的在线状态。通过以上的触发方式执行计算,至少可以保证只要用户进行了登录就可以获取到用户的在线状态,从而可以更准确地获取用户的在线状态。
[0032] 此外,根据本发明的一个实施方式,还可以由其他用户的请求触发计算:即,在其他用户发出请求希望了解该wap用户的在线状态或其他用户希望与该wap用户进行交互等操作时进行计算。
[0033] 根据本发明的一个实施方式,还可以在定时器到时时触发计算,例如,以在拦截到用户的一次主动访问后设置一个数秒、数分钟或数小时的定时器,在定时器到时时计算差值。
[0034] 此外,根据本发明的一个实施方式,还可以由系统指令来触发计算。
[0035] 以上的触发方式可以获得显著降低系统资源的消耗的益处,因为不论使用何种触发事件,触发方式仅仅在需要时才进行计算,这样必将节省大量的系统资源。
[0036] 本领域的技术人员应该理解,触发事件还可以包括任何适于实现本发明目的的事件,并且这些触发事件可以以任何合适的单独或组合地进行使用,而不限于记载的使用方式。
[0037] 根据通过步骤S 102中的计算所得到的差值,可以获得当前时刻距离wap用户的最后一次主动访问已经流逝的时间。基于一般性的经验判断,如果仅过去几秒钟或几分钟,例如用户在此期间正在阅读文章,那么可以不认为wap用户已经离线。然而,如果该差值表示距离wap用户的最后一次主动访问已经过去数十分钟甚至数个小时,那么可以认为该wap用户已经离线。基于这样的考虑,该方法包括步骤S103,该步骤将所述差值与预定义阈值进行比较来获取wap用户的在线状态。
[0038] 换言之,wap用户的在线状态取决于未拦截到其主动访问时间的长短。据此,需要预先设置阈值以确定判定用户在线或离线的标准。例如,wap用户在当前时刻已经有10分钟没有对服务器进行主动访问了,即差值为10分钟。如果阈值设置为5分钟,则由于差值超过了阈值,我们判定该用户已经离线,即获得了该wap用户的在线状态为离线。概括而言,获取用户状态的一般性规则可以是这样的:如果差值大于等于预定义阈值,则wap用户的在线状态为离线;以及如果差值小于所述预定义阈值,则wap用户的在线状态为在线。
[0039] 鉴于上述内容,在本发明的方法中,如何定义阈值将成为获取wap用户在线状态的一个关键部分。根据本发明的实施方式,可以根据各种具体情况来动态地设置该预定义阈值,这样可以为用户提供更人性化的服务体验。动态设置预定义阈值可以包括以下至少一项,例如:基于经验进行设置、基于一天中的时段进行设置、基于事件或通信条件进行设置。
[0040] 在本发明的一个实施方式中,例如,可以根据经验设置预定义阈值。例如,可以预先统计多个用户的两个主动访问之间最长的时间间隔,然后将该时间间隔取平均来设定该预定阈值。也可以仅仅根据的一般可接受时间来设置,例如,5分钟等。根据经验设置预定义值的好处在于能够使得阈值较为贴近实际情况,从而避免出现不合常理的结果。例如,用户1分钟内没有主动访问就认为其离线显然很难为用户所接受。
[0041] 然而,仅仅基于经验来设置阈值可能是不够的。因为这种设置方式仅仅满足了一般性情况。例如,根据经验,如果5分钟内没有拦截到wap用户的主动访问就可以认定其在线状态是离线,则这在一般性情况下是没有问题的,例如上午或下午。但是例如在中午或晚间,用户可能在午餐或晚餐前登录了社交网络、浏览了几条新闻后就去用餐了,但是其在此过程中并没有退出登录状态或者甚至他/她正在一边用餐一边观看网站的视频,因此,该用户还是在线的。为了应对这种情况,根据本发明的一个实施方式,可以在每天中人们用餐的时段将阈值设置得稍微长一些,比如15分钟,即,人们正常用餐的时长。这样动态地调整预定于阈值可以根据一天中所处时段的实际情况更好地提供用户的在线状态。
[0042] 此外,还可能出现这种情况:由于某些事件的出现或通信条件的变化,用户对服务器进行主动访问的频率相对于平常大大降低,例如wap用户可能此时正在关注一些重大的事件或遇到信号变差、通信系统故障等通信条件改变的情况。这时可以将阈值设置得更长一些以适应这种情况。
[0043] 例如,在FIFA世界杯的某场重要比赛期间,可能大部分用户会通过社交网络(例如,人人网)来交流比赛的感受。但是由于比赛很精彩,用户的主要精力集中于比赛,仅仅在某个精彩瞬间结束后发表一些感受和看法,因此对网站操作的频率,即进行主动访问的频率可能很低。这时根据日常经验来设置该预定阈值可能并非好的方式。例如,两个球迷好友在开赛前还在热烈地讨论着比赛并相约在比赛中进行交流,但是开赛5分钟后,使用便携式设备的一方wap用户或双方wap用户由于关注比赛而没有进行主动访问就被显示为离线,从用户角度而言,体验是不够好的。
[0044] 此外,例如,使用便携式设备的wap用户所处地区的无线通信信号不太好,可能一次主动访问的耗时较长,那么这时如果阈值设置的较短也是不合适的。
[0045] 还可能存在这样的情况,wap用户可能希望根据自己的情况设置该预定义阈值,从而令自己的好友更准确地获取自己的在线状态。例如,wap用户正忙于工作,不能主动访问或对朋友的消息进行阅读等,但是该wap用户大约知道自己的工作所持续的时间,于是他/她可以自己定义该预定义阈值。因此,在本发明的一个实施方式中,可以基于用户的定义来设置预定义阈值。
[0046] 鉴于以上原因,根据本发明的一个实施方式,可以基于事件或通信条件来设置预定义阈值。而其中的事件可以包括但不限于以下至少一个:新闻、体育赛事、突发事件等。
[0047] 本领域的技术人员应该理解,设置预定义阈值的目的在于设定用于判定用户在线状态的标准。因此,该标准可以根据各种情况进行动态地调整,调整所基于的理由并不限于上述记载的理由。
[0048] 根据本发明实施方式,用于获取wap用户在线状态的方法在步骤S101和步骤S102之间还可以包括这样的步骤:使用拦截获取的wap用户的最后访问时间来更新wap用户在线列表,wap用户在线列表包括wap用户的ID和wap用户的最后访问时间。
[0049] 因为,在大部分情况中,社交网站的用户数是很庞大的。因此,为了记录某个wap用户和其最后访问时间之间的对应关系可以使用表格的形式。基于该表格也更易查询和获取用户的信息,从而有利于步骤S102的计算。此类表格的一个示例如下:
[0050]
[0051] 表1
[0052] 在表1中我们可以看到,每个用户ID与其最后访问时间在同一行,这样有利于后续步骤获取和计算。因此,在每次拦截到wap用户的主动访问后,使用获取的最后访问时间来更新该表格中的最后访问时间,从而保持该表格中的数据总是处于最新状态。
[0053] 综上所述,本发明用于获取wap用户在线状态的方法可以获取wap用户在线的状态,解决了现有技术中wap用户的设备不支持在线状态获取机制从而无法获取其在线状态的问题,进而为社交网络的用户提供更好的用户体验,即使用户和其好友使用便携式设备也是如此。
[0054] 下面参考图2,图2示意性地示出了根据本发明实施方式的、用于获取wap用户在线状态的设备200的框图。
[0055] 如图2所示,根据本发明的一个实施方式,用于获取wap用户在线状态的设备200可以包括:拦截装置201,用于拦截wap用户的主动访问;计算装置202,用于计算所述wap用户的最后访问时间与当前时间的差值;以及获取装置203,用于将所述差值与预定义阈值进行比较来获取所述wap用户的在线状态。
[0056] 根据本发明的另一实施方式,设备200还可以包括更新装置,其可以使用拦截获取的wap用户的最后访问时间来更新wap用户在线列表,所述wap用户在线列表包括wap用户的ID和wap用户的最后访问时间。
[0057] 下面参考图3进一步描述本发明方法的实现过程。图3示意性地示出了根据本发明示例性实施方式的、实现用于获取wap用户在线状态的场景图。
[0058] 如图3所示,当网站的wap用户对网站服务器进行主动访问时,可以从中拦截该主动访问,从而可以获取wap用户的ID和其本次访问的时间,也称为最后访问时间。主动访问可以包括wap用户的登录动作或在登录动作之后发往服务器的任意请求。该请求可以是针对Web页面的HTTP请求。如果为了方便管理众多用户的最后访问时间而建立了表格,则在拦截之后,可以使用拦截获取的最后访问时间来更新该表格中的书记以保持表格中记录的最后访问时间总是最新的。
[0059] 在获得wap用户的最后访问时间后,可以以预定义的时间间隔执行计算或以触发方式执行计算来得到当前时间和最后访问时间的差值。其中触发方式中使用的触发事件可以包括以下至少一个:拦截到wap用户的主动访问、其他用户的请求、定时器到时以及系统指令。使用触发方式计算可以按需进行计算从而节省系统的资源。
[0060] 然后将计算所得的差值与预定义阈值进行比较来获取wap用户的在线状态。用户在线状态的判定标准如下:如果差值大于等于预定义阈值,则wap用户的在线状态为离线;以及如果差值小于预定义阈值,则wap用户的在线状态为在线。
[0061] 获取的用户在线状态可以取决于设置的预定义阈值。由于现实中的各种情况,可以动态地设置预定义阈值,并且动态地设置所述预定义阈值可以包括以下至少一项:基于经验进行设置、基于一天中的时段进行设置、基于事件或通信条件进行设置、、基于用户的定义进行设置。这样,基于各种条件设置预定义阈值可以更好地满足用户的需要,为用户提供更好地使用体验,避免出现不合理的情况。
[0062] 综上所述,本发明用于获取wap用户在线状态的方法和设备提供了一种很好的方式,从而在用户即使在使用便携式设备时,其好友也可以了解到该用户的在线状态,进一步完善了社交网络对于各种终端的支持,从而改进了用户体验。
[0063] 下面,将参考图4来描述可以实现本发明的计算机设备。图4示意性示出了可以实现根据本发明的实施方式的计算设备的结构框图。
[0064] 图4示意性示出了适于实现本发明实施方式的计算机系统的框图。如图4所示,计算机系统可以包括:CPU(中央处理单元)401、RAM(随机存取存储器)402、ROM(只读存储器)403、系统总线404、硬盘控制器405、键盘控制器406、串行接口控制器407、并行接口控制器408、显示控制器409、硬盘410、键盘411、串行外部设备412、并行外部设备413和显示器414。在这些部件中,与系统总线404相连的有CPU 401、RAM 402、ROM 403、硬盘控制器505、键盘控制器406、串行接口控制器407、并行接口控制器408和显示控制器409。硬盘410与硬盘控制器405相连,键盘411与键盘控制器406相连,串行外部设备412与串行接口控制器407相连,并行外部设备413与并行接口控制器408相连,以及显示器414与显示控制器409相连。应当理解,图4所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明的限制。在某些情况下,可以根据需要增加或者减少其中的一些设备。而且,本领域的技术人员应该理解,可以实现本发明的设备并非仅限于上述计算设备,而是可以使用任何合适的其他设备。
[0065] 尽管本说明书包含多种特定细节,但是不应将其理解为是对本发明的范围或者所要求保护内容的限制,而应当理解为是本发明具体实施方式的特定特征的描述。本说明书中描述的在各个实施方式的上下文中的某些特征也可以在单个实施方式中结合实现。相反,在单个实施方式上下文中描述的各种特征也可以分别实现在多个实施方式中或者任意适当的子组合中。而且,尽管上文可能将特征描述为在特定的组合中操作,甚至初始也是这样要求保护的,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以针对子组合或组合的变形。
[0066] 类似地,尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。