一种效率高的展示离线消息的方法及终端
文献发布时间:2023-06-19 11:26:00
本案是以申请号为201910096784.5,申请日为2019年1月31日,名称为《一种展示离线消息的方法及终端》的专利申请为母案的分案申请。
技术领域
本发明涉及离线消息技术领域,尤其是涉及一种效率高的展示离线消息的方法及终端。
背景技术
在现在系统或者APP中都存在消息推送功能,一般APP系统的客户端数量会达到几十万到上百万之多,每一个客户端均要与服务器保持一个长连接,有几十万到上百万的长连接会连接到服务器上。同时,已建立长连接的APP需要每隔一定时间发送心跳包给服务器,使服务端可以确认该APP设备是否断线。
在这种几十万到几百万的长连接均连接到服务器的情况下,会给服务器带来很大的压力,由于手机客户端的网络情况不稳定,还常常会出现断网、上网、或者网络切换等等网络上的问题,造成推送消息存在在线推送和离线推送两种情况。当网络稳定时,连接通道成功建立,手机客户端可以进行消息的在线推送,当网络中断或者其他情况时,连接通道未成功建立,则表示手机客户端不在线,服务端保存离线消息,待客户端再次上线时才进行离线消息的发送,此时,当手机客户端重启后,大量的离线用户重新连接上来均要获取自己的离线消息,给服务端带来了巨大的压力,可能导致服务器再次宕机。
旧有系统中,针对离线消息数量以及离线消息明细的获取一般是通过在服务端中设有一张记录每个离线用户的离线消息的离线消息记录表,以一条离线消息对应一条记录的方式进行记录。当客户端上线获取离线消息时,通过分页获取该客户端对应的离线消息,并由客户端或者服务端进行离线消息数量上的统计,当获取所有离线消息并统计完毕后,在客户端界面进行相关展示,这时,若离线消息数量巨大,将导致获取和统计离线消息的时间较长,造成客户端展示界面加载缓慢的问题。
发明内容
本发明所要解决的技术问题是:提供一种效率高的展示离线消息的方法及终端,可以快速展示离线消息,提高用户体验感。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种效率高的展示离线消息的方法,包括步骤:
S1、新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息;
S2、接收获取离线消息的请求,根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种效率高的展示离线消息的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息;
S2、接收获取离线消息的请求,根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录。
本发明的有益效果在于:通过新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息,每次接收获取离线消息的请求时,直接根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录,区别于拉取离线消息记录表中每一条离线消息进行统计的现有方式,本发明可以直接根据所述离线消息数量记录表获取离线消息数量和最新离线消息记录进行展示,可以快速展示离线消息,减少运算时间,提高效率和用户体验感。
附图说明
图1为本发明实施例的一种效率高的展示离线消息的方法的步骤流程图;
图2为本发明实施例的一种效率高的展示离线消息的终端的结构示意图;
标号说明:
1、一种效率高的展示离线消息的终端;2、存储器;3、处理器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:新增离线消息数量记录表,每次接收获取离线消息的请求时,直接根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录。
请参照图1,一种效率高的展示离线消息的方法,包括步骤:
S1、新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息;
S2、接收获取离线消息的请求,根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录。
从上述描述可知,本发明的有益效果在于:通过新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息,每次接收获取离线消息的请求时,直接根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录,区别于拉取离线消息记录表中每一条离线消息进行统计的现有方式,本发明可以直接根据所述离线消息数量记录表获取离线消息数量和最新离线消息记录进行展示,可以快速展示离线消息,减少运算时间,提高效率和用户体验感。
进一步的,所述离线消息数量记录表还包括离线消息的类型,所述最新离线消息记录的信息包括最新离线消息记录的标识;
所述步骤S1和S2之间包括:
每生成一个新的离线消息,获取所述新的离线消息的类型,根据所述新的离线消息的类型将所述离线消息数量记录表中对应类型的离线消息数量加一,并将所述新的离线消息的标识作为对应的最新离线消息记录的标识。
由上述描述可知,在每生成一个新的离线消息时都根据所述新的离线消息的类型更新所述离线消息数量记录表,在后续接收获取离线消息请求时,可以通过所述离校消息数量记录表快速响应返回信息,实时将最新的离线消息数量及离校消息记录的信息进行展示,提高及时性和用户体验感。
进一步,所述根据所述新的离线消息的类型将所述离线消息数量记录表中对应类型的离线消息数量加一之前还包括:
根据所述新的离线消息的类型,向离线消息记录表中添加所述新的离线消息;
所述步骤S2之后还包括步骤:
S3、判断是否接收获取指定类型的离线消息明细的请求,若是,则调用获取所述指定类型的离线消息记录表的接口,获取并展示所述指定类型的离线消息明细;
若否,则通过异步线程调用获取所有离线消息明细的接口,按照所述离线消息记录生成时间的先后获取所有的离线消息记录,并根据所有的离线消息记录进行本地更新。
由上述描述可知,在展示所述离线消息数量和最新离线消息记录的信息后,根据用户的操作来加载离线消息,若接收到获取指定类型的离线消息明细的请求,则只需要拉取并展示指定类型的离线消息,若没有指定类型,再通过异步线程获取所有离线消息,可以根据具体操作来拉取相应的离线消息,节约资源,提高效率,通过异步线程操作可以在不影响现有业务的情况下加快响应速度,将获取到的离线消息保存在本地,可以直接供用户查看和使用。
进一步的,所述步骤S2中根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录具体为:
调用获取离线消息数量的接口,查询所述离线消息数量记录表,获取每种类型的离线消息数量和每种类型对应的最新离线消息记录的标识;
根据所述最新离线消息记录的标识从所述离线消息记录表中获取所述最新离线消息记录的明细;
展示每种类型的离线消息数量和对应的最新离线消息记录的明细。
由上述描述可知,通过获取所述最新离线消息记录的标识从所述离线消息记录表中获取对应的最新离线消息记录的明细,可以仅在所述离线消息数量记录表中记录所述最新离线消息记录的标识,减小所述离线消息数量记录表的资源占用,以最小代价实现快速响应,加快展示离线消息的速度。
进一步的,所述步骤S3还包括:
判断获取离线消息明细是否成功,若是,则从离线消息记录表中删除对应的离线消息记录,并根据删除结果更新所述离线消息数量记录表。
由上述描述可知,删除获取成功的离线消息记录,并更新所述离线消息数量记录表,可以及时清理无用的记录,减小资源占用,及时更新所述离线消息数量记录表,保证离线消息数量记录表的准确性。
请参照图2,一种效率高的展示离线消息的终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息;
S2、接收获取离线消息的请求,根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录。
从上述描述可知,本发明的有益效果在于:通过新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息,每次接收获取离线消息的请求时,直接根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录,区别于拉取离线消息记录表中每一条离线消息进行统计的现有方式,本发明可以直接根据所述离线消息数量记录表获取离线消息数量和最新离线消息记录进行展示,可以快速展示离线消息,减少运算时间,提高效率和用户体验感。
进一步的,所述离线消息数量记录表还包括离线消息的类型,所述最新离线消息记录的信息包括最新离线消息记录的标识;
所述步骤S1和S2之间包括:
每生成一个新的离线消息,获取所述新的离线消息的类型,根据所述新的离线消息的类型将所述离线消息数量记录表中对应类型的离线消息数量加一,并将所述新的离线消息的标识作为对应的最新离线消息记录的标识。
由上述描述可知,在每生成一个新的离线消息时都根据所述新的离线消息的类型更新所述离线消息数量记录表,在后续接收获取离线消息请求时,可以通过所述离校消息数量记录表快速响应返回信息,实时将最新的离线消息数量及离校消息记录的信息进行展示,提高及时性和用户体验感。
进一步,所述根据所述新的离线消息的类型将所述离线消息数量记录表中对应类型的离线消息数量加一之前还包括:
根据所述新的离线消息的类型,向离线消息记录表中添加所述新的离线消息;
所述步骤S2之后还包括步骤:
S3、判断是否接收获取指定类型的离线消息明细的请求,若是,则调用获取所述指定类型的离线消息记录表的接口,获取并展示所述指定类型的离线消息明细;
若否,则通过异步线程调用获取所有离线消息明细的接口,按照所述离线消息记录生成时间的先后获取所有的离线消息记录,并根据所有的离线消息记录进行本地更新。
由上述描述可知,在展示所述离线消息数量和最新离线消息记录的信息后,根据用户的操作来加载离线消息,若接收到获取指定类型的离线消息明细的请求,则只需要拉取并展示指定类型的离线消息,若没有指定类型,再通过异步线程获取所有离线消息,可以根据具体操作来拉取相应的离线消息,节约资源,提高效率,通过异步线程操作可以在不影响现有业务的情况下加快响应速度,将获取到的离线消息保存在本地,可以直接供用户查看和使用。
进一步的,所述步骤S2中根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录具体为:
调用获取离线消息数量的接口,查询所述离线消息数量记录表,获取每种类型的离线消息数量和每种类型对应的最新离线消息记录的标识;
根据所述最新离线消息记录的标识从所述离线消息记录表中获取所述最新离线消息记录的明细;
展示每种类型的离线消息数量和对应的最新离线消息记录的明细。
由上述描述可知,通过获取所述最新离线消息记录的标识从所述离线消息记录表中获取对应的最新离线消息记录的明细,可以仅在所述离线消息数量记录表中记录所述最新离线消息记录的标识,减小所述离线消息数量记录表的资源占用,以最小代价实现快速响应,加快展示离线消息的速度。
进一步的,所述步骤S3还包括:
判断获取离线消息明细是否成功,若是,则从离线消息记录表中删除对应的离线消息记录,并根据删除结果更新所述离线消息数量记录表。
由上述描述可知,删除获取成功的离线消息记录,并更新所述离线消息数量记录表,可以及时清理无用的记录,减小资源占用,及时更新所述离线消息数量记录表,保证离线消息数量记录表的准确性。
实施例一
请参照图1,一种效率高的展示离线消息的方法,包括步骤:
S1、新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息;
其中,所述离线消息数量记录表还包括用户ID、应用ID和离线消息的类型;
所述离线消息数量记录表中的最新离线消息记录的信息包括最新离线消息记录的标识;
具体地,所述离线消息数量记录表的字段格式为:
User_id:用户ID
app_id:应用ID
msg_type:离线消息类型
count:离线消息数量
last_msg_id:最新一条离线消息的消息ID
通过用户ID和应用ID可以作为唯一标识对应特定应用上特定用户的离线消息;所述离线消息类型可根据具体业务定义,例如聊天消息、系统消息等等,可以在同一应用中定义多个不同的类型;
所述最新离线消息记录的标识为所述最新一条离线消息的消息ID;
在用户量较少时,可以通过新增一张离线消息数量记录表来记录同一应用中每个用户的离线消息相关数据,在用户量较多时,也可以新增多张离线消息数量记录表来进行记录;
每生成一个新的离线消息,获取所述新的离线消息的类型;
根据所述新的离线消息的类型,向离线消息记录表中添加所述新的离线消息;
所述离线消息记录表位于服务端,其是与离线消息数量记录表不同的表,用于记录每个离线用户的离线消息明细,一条离线消息对应一条记录,每条记录包含了离线消息对应的消息ID、用户ID、应用ID、离线消息类型、生成时间以及具体的离线消息内容;
根据所述新的离线消息的类型将所述离线消息数量记录表中对应类型的离线消息数量加一,并将所述新的离线消息的标识作为对应的最新离线消息记录的标识;
当客户端上线后进入离线消息展示界面,发出获取离线消息的请求;
S2、接收获取离线消息的请求,根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录的信息。
具体地,调用获取离线消息数量的接口,查询所述离线消息数量记录表,获取每种类型的离线消息数量和每种类型对应的最新离线消息记录的标识;
根据所述最新离线消息记录的标识即所述最新离线消息记录的消息ID从所述离线消息记录表中获取对应的最新离线消息记录的明细;
展示每种类型的离线消息数量和对应的最新离线消息记录的明细;
具体的,展示所述最新离线消息记录的明细包括展示所述最新离线消息记录的类型、生成时间以及具体的离线消息内容;
S3、通过异步线程在后台调用获取所有离线消息明细的接口,或是在长连接情况下通过发送获取命令获取所有离线消息明细,按照所述离线消息记录生成时间的先后获取所有的离线消息记录,并根据所有的离线消息记录进行本地更新,按照所述离线消息记录生成时间的先后以及展示页面的最大展示数量展示所述离线消息明细;
具体的,展示所述离线消息的类型、生成时间以及具体的离线消息内容;
判断获取离线消息明细是否成功,若是,则从离线消息记录表中删除对应的离线消息记录,并根据删除结果更新所述离线消息数量记录表。
例如,获取了n条离线消息明细成功,则从离线消息记录表中删除这n条获取成功的离线消息记录,并将所述离线消息数量记录表中离线消息数量减去n;判断当前所述离线消息记录表中最新的离线消息记录是否变更,若是,则获取所述离线消息记录表中最新的离线消息记录的消息ID作为所述离线消息数量记录表中最新离线消息记录的标识。
实施例二
本实施例与实施例一的不同在于本实施例的步骤S3为:
S3、判断是否接收获取指定类型的离线消息明细的请求,若是,则调用获取所述指定类型的离线消息记录表的接口,获取并展示所述指定类型的离线消息明细;
具体的,展示所述指定类型的离线消息的类型、生成时间以及具体的离线消息内容;
若否,则通过异步线程在后台调用获取所有离线消息明细的接口,或是在长连接情况下通过发送获取命令获取所有离线消息明细,按照所述离线消息记录生成时间的先后获取所有的离线消息记录,并根据所有的离线消息记录进行本地更新,保存在本地的离线消息可以直接供用户查看或使用。
例如,在聊天APP的首页展示信息界面,用户由离线状态变成在线状态后,预先通过离线消息数量记录表获取离线消息数量以及最新的离线消息进行展示,当用户点击具体类型的离线消息时,只获取指定类型的离线消息记录明细,若用户未点击具体类型的离线消息,则由后台异步线程拉取所有类型的离线消息明细进行本地更新。
实施例三
请参照图2,一种效率高的展示离线消息的终端1,包括存储器2、处理器3及存储在存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一中的各个步骤。
实施例四
请参照图2,一种效率高的展示离线消息的终端1,包括存储器2、处理器3及存储在存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例二中的各个步骤。
综上所述,本发明提供的一种效率高的展示离线消息的方法及终端,通过新增离线消息数量记录表,所述离线消息数量记录表包括离线消息数量和最新离线消息记录的信息,每次接收获取离线消息的请求时,直接根据所述离线消息数量记录表展示离线消息数量和最新离线消息记录,进一步若接收获取指定类型的离线消息明细的请求,则调用获取所述指定类型的离线消息记录表的接口获取并展示所述指定类型的离线消息明细,否则通过异步线程调用获取所有离线消息明细的接口,按照所述离线消息记录生成时间的先后获取所有的离线消息记录进行本地更新,区别于拉取离线消息记录表中每一条离线消息进行统计的现有方式,本发明可以直接根据所述离线消息数量记录表获取离线消息数量和最新离线消息记录的信息进行展示,可以快速展示离线消息,减少运算时间,可以根据具体操作来拉取相应的离线消息,节约资源,提高效率,通过异步线程操作可以在不影响现有业务的情况下加快响应速度,将获取到的离线消息保存在本地,可以直接供用户查看和使用,提高效率和用户体验感。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
- 一种效率高的展示离线消息的方法及终端
- 一种快速展示离线消息的方法及终端