在线状态计算方法、设备和介质与流程

文档序号:36313401发布日期:2023-12-07 18:56阅读:32来源:国知局
在线状态计算方法与流程

本技术涉及计算机,特别是涉及到一种在线状态计算方法、设备和介质。


背景技术:

1、在当今的web应用程序中,用户在线状态的计算对于提供个性化、实时的用户体验至关重要。在线状态计算是指判断用户当前是否仍然在线的过程。传统的在线状态计算方法通常使用心跳机制,即定期发送心跳请求来确认用户的在线状态。然而,这种方法存在一些问题,如增加服务器负载和网络流量、误判用户的在线状态等。因此,如何解决这些问题且提供更准确和高效的在线状态计算方法是亟需解决的技术问题。


技术实现思路

1、本发明的主要目的为提供一种在线状态计算方法、设备和介质,旨在解决现有在线状态计算方法存在的技术问题以及提供更加准确和高效的在线状态计算方法。

2、为了实现上述发明目的,本发明第一方面提出一种在线状态计算方法,所述方法包括:

3、客户端向服务器发送用户的登录请求;其中,所述登录请求包括账号和密码;

4、所述服务器接收所述账号和所述密码并判断所述账号和所述密码是否匹配;

5、若匹配,则登录成功,且所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionid,将所述sessionid存储在所述服务器的会话存储中并将所述sessionid发送到所述客户端进行存储;

6、在所述账号登录成功后,基于所述账号,所述客户端每次向所述服务器发送请求时,所述客户端将所述请求和所述sessionid一起发送给所述服务器;

7、所述服务器接收到所述请求后,根据所述sessionid查询对应的session信息;

8、所述服务器根据所述session信息判断所述session是否过期;

9、若过期,则判定所述用户已经离线;

10、若没有过期,则判定所述用户仍然在线。

11、进一步的,所述采用加密算法生成一个唯一的sessionid的步骤包括:

12、采用随机数生成器生成一个随机的种子值;

13、将所述种子值、所述账号以及时间戳作为输入传递给加密算法进行哈希运算生成一个唯一的sessionid。

14、进一步的,所述session信息包括session的过期时间,所述服务器根据所述session信息判断所述session是否过期的步骤包括:

15、当所述服务器接收到所述请求后,获取当前时间以及session的过期时间;

16、所述服务器比较所述当前时间和所述session的过期时间;

17、若所述当前时间晚于或等于所述session的过期时间,则判定所述session过期;

18、若所述当前时间早于所述session的过期时间,则判定所述session未过期。

19、进一步的,所述判定所述session未过期的步骤之后,还包括:

20、所述服务器获取所述session的有效期延长时间;

21、所述服务器利用所述session的有效期延长时间更新所述session的过期时间。

22、进一步的,所述服务器获取所述session的有效期延长时间的步骤包括:

23、所述服务器获取所述登录请求中携带的账号;

24、所述服务器在数据库中搜索出所述账号的级别;其中,所述数据库中预先存储有各账号的级别;

25、所述服务器根据账号级别与session的有效期延长时间的对应关系确定所述账号对应的session的有效期延长时间;其中,账号级别越高,会话有效期延长时间越短。

26、进一步的,所述服务器为所述用户创建一个session并采用加密算法生成一个唯一的sessionid的步骤之后还包括:

27、所述服务器监测所述账号是否注销或以及所述客户端是否长时间未基于所述账号发起请求;

28、若监测到所述账号已注销或所述客户端长时间未基于所述账号发起请求,所述服务器将所述session销毁并判定所述用户已经离线。

29、进一步的,所述将所述session销毁的步骤包括:

30、将所述session删除或将所述session标记为已销毁。

31、进一步的,所述sessionid通过http请求头、cookie以及url参数中的任意一种或多种方式传递到所述服务器。

32、第三方面,本技术实施例提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述的线状态计算方法的步骤。

33、第四方面,本技术实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的线状态计算方法的步骤。

34、有益效果

35、本技术实施例相比于传统的心跳检测方法具有如下有益效果:

36、1、传统的心跳检测方法需要定期发送心跳请求来判断用户的在线状态,这会增加服务器的负载和网络流量,而本技术实施例基于session的在线状态计算方法只在用户发起请求时进行会话验证,减轻了服务器的负载和网络流量。服务器只需要在接收到请求时验证session的有效性,不需要额外的心跳请求,从而提高了服务器的处理能力,降低了系统的资源消耗。

37、2、本技术实施例当用户发起请求时,服务器会根据sessionid查找对应的session信息,并判断session是否过期,如果session过期,则认为用户已离线;如果session未过期,则认为用户仍然在线。相比于传统的心跳检测方式,基于session的在线状态计算方法更加准确,可以更及时地反映用户的在线状态。

38、3、session机制是一种轻量级的状态管理机制,不需要维护大量的在线状态信息。服务器只需要根据sessionid查找对应的session信息,然后判断session是否过期即可。这种高效的session管理方式可以在大规模用户和高并发请求的情况下进行高效的在线状态计算。同时,基于session的在线状态计算方法可以通过使用分布式会话存储来支持高可用和可扩展性,满足系统的扩展需求。

39、4、基于session的在线状态计算方法可以灵活地管理session。可以根据业务需求设置不同的session过期时间,以满足不同的需求。例如,可以设置较短的session过期时间来实现较精确的在线状态判断,也可以设置较长的session过期时间来减少session验证的频率。同时,session机制也可以支持其他功能,如用户认证、权限管理等。

40、5、采用加密算法生成唯一的sessionid,可以确保生成的sessionid的随机性、不可预测性以及增加sessionid的安全性,从而确保会话机制的安全性,从而提高在线状态计算的准确性和可靠性。

41、综上,本技术实施例基于session机制的在线状态计算方法可以提供更准确、高效和可扩展的在线状态管理方案。通过减少服务器负载和网络流量、更准确判断用户的在线状态、高效且可扩展的session管理以及灵活的session管理,可以提供更好的用户体验,并提升系统的性能和可用性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1