CN105827706A - 消息推送装置及方法 - Google Patents

消息推送装置及方法 Download PDF

Info

Publication number
CN105827706A
CN105827706A CN201610173870.8A CN201610173870A CN105827706A CN 105827706 A CN105827706 A CN 105827706A CN 201610173870 A CN201610173870 A CN 201610173870A CN 105827706 A CN105827706 A CN 105827706A
Authority
CN
China
Prior art keywords
user
online
list
message
push
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610173870.8A
Other languages
English (en)
Other versions
CN105827706B (zh
Inventor
林伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Shifang Ronghai Technology Co., Ltd
Original Assignee
Nubia Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201610173870.8A priority Critical patent/CN105827706B/zh
Publication of CN105827706A publication Critical patent/CN105827706A/zh
Application granted granted Critical
Publication of CN105827706B publication Critical patent/CN105827706B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services

Abstract

本发明公开一种消息推送装置,包括:确定模块,用于在接收到发布者发布的一条新消息后,获取在线用户列表和关注所述发布者的推送对象,并根据获取到的所述在线用户列表和所述推送对象,确定出在线推送对象和离线推送对象;生成模块,用于根据所述在线推送对象和所述新消息,生成与所述在线推送对象中用户相应个数的推送消息;推送模块,用于将生成的推送消息对应存储在所述在线推送对象中各个用户的消息接收单元,并将所述新消息的标识记录在所述离线推送对象中的各个用户的未读消息列表中。本发明还公开一种消息推送方法。本发明降低了服务器及数据库的处理压力,提高了用户查看推送消息的效率。

Description

消息推送装置及方法
技术领域
本发明涉及通信技术领域,尤其涉及一种消息推送装置及方法。
背景技术
SNS系统又称SNS程序、SNS软件、社交网络系统,是一个建设社交网络网站(如人人网、开心网)的程序。一个完整的SNS系统通常具备日志、相册、分享、群组、心情、投票等多个功能模块,通过插件机制及开放API(ApplicationProgrammingInterface,应用程序编程接口)还能扩展功能应用。其中最重要的是Feed系统,Feed系统是SNS类应用的核心和最复杂的部分,类似于新浪微博中看到的“我关注的人”的消息,或人人网中的“新鲜事”、个人订阅的消息、关注信息等等。
在消息订阅类型的应用中,一个明星有几十万到几百万的关注粉丝是很常见的事。当该明星发布一条消息后,关注该明星的所有粉丝均需要收到该条消息的提示。常规方式有两种,一种是采用推的方式,即一条消息针对订阅其的用户,产生对应条数的推送消息发送至个人用户的收件箱(即消息接收单元)中,也就是说该明星发布一条消息后,后台服务器就会产生几十万甚至是几百万的记录并入库,此时,会给服务器带来很大的压力。另一种是采用拉的方式,即该明星发布的消息在数据库中只存储一条,由每个用户的终端连接上来时,自行去数据库中查询记录获得该消息,但此时会给数据库造成很大的压力。这两种方式下,用户查询推送消息的效率都很低。
发明内容
本发明的主要目的在于提出一种消息推送装置及方法,旨在提高用户查询推送消息的效率。
为实现上述目的,本发明提供一种消息推送装置,所述消息推送装置包括:
确定模块,用于在接收到发布者发布的一条新消息后,获取在线用户列表和关注所述发布者的推送对象,并根据获取到的所述在线用户列表和所述推送对象,确定出在线推送对象和离线推送对象;
生成模块,用于根据所述在线推送对象和所述新消息,生成与所述在线推送对象中用户相应个数的推送消息;
推送模块,用于将生成的推送消息对应存储在所述在线推送对象中各个用户的消息接收单元,并将所述新消息的标识记录在所述离线推送对象中的各个用户的未读消息列表中。
可选的,所述消息推送装置还包括:
第一处理模块,用于当接收到所述在线推送对象中的第一用户发送的读取未读消息的请求时,从所述第一用户的消息接收单元读取相应的推送消息并返回给所述第一用户。
可选的,所述消息推送装置还包括:
第二处理模块,用于当接收到所述离线推送对象中的第二用户发送的读取未读消息的请求时,根据所述第二用户的未读消息列表从数据库中查询标识对应的新消息,并将查询到的新消息对应生成的推送消息返回给所述第二用户。
可选的,所述消息推送装置还包括维护模块,所述维护模块包括:
判断单元,用于用户上线后,获取所述用户本次登录的时间,并判断所述用户是否存在于所述在线用户列表中;
第一更新单元,用于如果所述用户已存在于所述在线用户列表中,则以所述用户本次登录的时间更新所述用户在所述在线用户列表中的最近一次登录时间,并根据更新后的最近一次登录时间和预置的在线维持时间间隔,计算并更新所述用户的在线截止时间;
第二更新单元,用于如果所述用户不存在于所述在线用户列表中,则将所述用户的用户标识、本次登录的时间、由本次登录的时间和所述在线维持时间间隔相加计算出的在线截止时间,对应添加到所述在线用户列表中。
可选的,所述维护模块还包括:
记录删除模块,用于如果所述在线用户列表中当前用户的在线截止时间大于当前时间,则将当前用户对应的记录从所述在线用户列表中删除。
为实现上述目的,本发明还提供一种消息推送方法,所述消息推送方法包括:
在接收到发布者发布的一条新消息后,获取在线用户列表和关注所述发布者的推送对象,并根据获取到的所述在线用户列表和所述推送对象,确定出在线推送对象和离线推送对象;
根据所述在线推送对象和所述新消息,生成与所述在线推送对象中用户相应个数的推送消息;
将生成的推送消息对应存储在所述在线推送对象中各个用户的消息接收单元,并将所述新消息的标识记录在所述离线推送对象中的各个用户的未读消息列表中。
可选的,所述消息推送方法还包括:
当接收到所述在线推送对象中的第一用户发送的读取未读消息的请求时,从所述第一用户的消息接收单元读取相应的推送消息并返回给所述第一用户。
可选的,所述消息推送方法还包括:
当接收到所述离线推送对象中的第二用户发送的读取未读消息的请求时,根据所述第二用户的未读消息列表从数据库中查询标识对应的新消息,并将查询到的新消息对应生成的推送消息返回给所述第二用户。
可选的,所述消息推送方法还包括所述在线用户列表的维护,所述在线用户列表的维护包括:
用户上线后,获取所述用户本次登录的时间,并判断所述用户是否存在于所述在线用户列表中;
如果所述用户已存在于所述在线用户列表中,则以所述用户本次登录的时间更新所述用户在所述在线用户列表中的最近一次登录时间,并根据更新后的最近一次登录时间和预置的在线维持时间间隔,计算并更新所述用户的在线截止时间;
如果所述用户不存在于所述在线用户列表中,则将所述用户的用户标识、本次登录的时间、由本次登录的时间和所述在线维持时间间隔相加计算出的在线截止时间,对应添加到所述在线用户列表中。
可选的,所述在线用户列表的维护还包括:
如果所述在线用户列表中当前用户的在线截止时间大于当前时间,则将当前用户对应的记录从所述在线用户列表中删除。
本发明提出的消息推送装置及方法,对于发布者发布的一条新消息,仅对确定为在线推送对象中的用户生成相应个数的推送消息,并将生成的推送消息对应存储在所述在线推送对象中的各个用户的消息接收单元,以使所述在线推送对象中的用户请求查看所述新消息时,从所述消息接收单元读取相应的推送消息;而对于确定为离线推送对象中的用户,仅在其未读消息列表中记录所述新消息的标识,以使所述离线推送对象中的用户请求查看所述新消息时,根据所述未读消息列表中记录的所述标识获取所述新消息,大大减少了服务器在短时间内生成推送消息的数量,降低了单纯采用推方式时服务器的处理压力及单纯采用拉方式时数据库的处理压力,从而提高了用户查看推送消息的效率。
附图说明
图1为本发明第一实施例的消息推送装置的功能模块示意图;
图2为本发明一实施例的服务器的硬件结构示意图;
图3为本发明第二实施例的消息推送装置的功能模块示意图;
图4为本发明第三实施例的消息推送装置的功能模块示意图;
图5为本发明第四实施例的消息推送装置中维护模块的细化功能模块示意图;
图6为本发明第五实施例的消息推送装置中维护模块的细化功能模块示意图;
图7为本发明第一实施例的消息推送方法的流程示意图;
图8为本发明第二实施例的消息推送方法的流程示意图;
图9为本发明第三实施例的消息推送方法的流程示意图;
图10为本发明消息推送方法第四实施例中维护在线用户列表的细化流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供一种消息推送装置,如图1所示,示出了本发明消息推送装置第一实施例的功能模块示意图,消息推送装置包括:
确定模块100,用于在接收到发布者发布的一条新消息后,获取在线用户列表和关注发布者的推送对象,并根据获取到的在线用户列表和推送对象,确定出在线推送对象和离线推送对象;
本发明消息推送装置可设置在服务器上,并由服务器的处理器提供相应的功能。服务器可应用在消息订阅类型的系统中,如Feed系统。参照图2,图2为服务器的一个硬件结构示意图,服务器可以为一个独立的物理服务器,包括处理器10、内存20、存储器30(如硬盘)、系统总线40、通信装置50等,服务器上安装有系统程序、应用程序(如数据库)等;服务器还可以由几个物理服务器组成,这些物理服务器按照提供的功能可分为应用服务器、数据库服务器、缓存服务器、消息队列服务器等细化服务器,此时,消息推送装置可设置在应用服务器上,应用服务器能够与其他细化服务器之间进行通信,每个细化服务器均包括处理器10、内存20、存储器30(如硬盘)、系统总线40、通信装置50等,且安装有系统程序和应用程序等,另外,两种或两种以上的细化服务器提供的功能可根据需求设置在同一台物理服务器上。
在消息订阅类型的应用中,当一个用户发布一条新消息时,该用户就是该新消息的发布者。以上述第二种服务器为例,在该应用的应用服务器接收到该用户发布新消息的请求时,应用服务器同时能够获取到发布者发布的新消息。一方面,应用服务器会将发布者发布的新消息存储在数据库中,并将新消息发布出去,另一方面,应用服务器的确定模块100获取存储在应用服务器上的在线用户列表,并从数据库中查询关注发布者的所有用户,这些关注发布者的用户即为新消息的推送对象。其中,推送对象中所包含的用户的总数大于或等于0,根据实际查询结果而定。数据库可设置在应用服务器中,还可设置在一个独立的数据库服务器中。
在线用户列表由应用服务器根据用户的实际登录情况统计得出,并存储在应用服务器中。在线用户列表记录有维持在线用户的用户标识、最近一次登录时间、在线截止时间,其中,在线截止时间由对应的最近一次登录时间和预置的在线维持时间间隔相加计算得出,且在在线用户列表中的用户的在线截止时间均大于或等于应用服务器当前的系统时间。最近一次登录时间和在线截止时间可精确到年月日时分秒,在线维持时间间隔的单位为小时,也可以为分钟等。
应用服务器的确定模块100将既存在于推送对象中同时又存在于在线用户列表中的用户,确定为在线推送对象。在线推送对象中的用户,并不一定是当前正在在线活跃的用户,也就是说,在线推送对象中用户不仅可以是推送对象中当前正在在线活跃的用户,还可以是推送对象中按照在线用户列表统计被认为仍保持在线的用户。确定模块100中,在确定出推送对象中的在线推送对象后,推送对象中除在线推送对象中用户外的剩余用户即为离线推送对象。
生成模块200,用于根据在线推送对象和新消息,生成与在线推送对象中用户相应个数的推送消息;
应用服务器在获取到在线推送对象后,生成模块200将新消息按照在线推送对象中所包含的用户的总数,生成相应个数的推送消息,也即,在线推送对象中的每一个用户对应有一个待发送的推送消息。而对于离线推送对象中的用户,应用服务器的生成模块200则不会给这些用户生成相应的推送消息,也就是说,应用服务器仅对在线推送对象中的用户采用推方式进行新消息的推送,与现有的生成与推送对象中用户的总数相应个数的推送消息的方式相比,可大大减少应用服务器在短时间内生成推送消息的数量,降低了应用服务器的处理压力。
推送模块300,用于将生成的推送消息对应存储在在线推送对象中各个用户的消息接收单元,以使在线推送对象中的用户请求查看新消息时,从消息接收单元读取相应的推送消息;将新消息的标识记录在离线推送对象中的各个用户的未读消息列表中,以使离线推送对象中的用户请求查看新消息时,根据未读消息列表中记录的标识获取新消息。
在消息订阅类型的应用中,每个注册成功的用户在服务器端对应有一个消息接收单元,如收件箱,用于接收用户未查收的未读消息。消息接收单元可设置在一个独立的缓存服务器中,也可设置在应用服务器的缓存区中。
应用服务器在生成与在线推送对象中用户总数相应个数的推送消息后,推送模块300将各个推送消息对应存储在在线推送对象中各个用户的消息接收单元,而对于离线推送对象中的用户,应用服务器的推送模块300将新消息的标识等信息记录在各个用户的未读消息列表中,以采用推拉结合的方式对用户请求查看新消息的请求作出响应处理。其中,未读消息列表记录了用户离线期间未接收到的推送消息的信息。
可以理解,未读消息列表还可以理解为,用户所接收的所有消息中处于未读状态的消息的集合,处于未读状态的消息的详细内容可在用户刷新相应页面时由应用服务器即时查询数据库获得。
本发明提出的消息推送装置,对于发布者发布的一条新消息,仅对确定为在线推送对象中的用户生成相应个数的推送消息,并将生成的推送消息对应存储在在线推送对象中的各个用户的消息接收单元,以使在线推送对象中的用户请求查看新消息时,从消息接收单元读取相应的推送消息;而对于确定为离线推送对象中的用户,仅在其未读消息列表中记录新消息的标识,以使离线推送对象中的用户请求查看新消息时,根据未读消息列表中记录的标识获取新消息,大大减少了服务器在短时间内生成推送消息的数量,采用推拉结合的方式,降低了单纯采用推方式时服务器的处理压力及单纯采用推方式时数据库的处理压力,从而提高了用户查看推送消息的效率。
进一步地,参照图3,基于第一实施例提出本发明消息推送装置第二实施例,在本实施例中,消息推送装置还包括:
第一处理模块400,用于当接收到在线推送对象中的第一用户发送的读取未读消息的请求时,从第一用户的消息接收单元读取相应的推送消息并返回给第一用户。
第一用户是指在线推送对象中的任一用户。当在线推送对象中的第一用户根据应用上的提示想要查看新消息时,第一用户的终端向应用服务器发送读取未读消息的请求,应用服务器的第一处理模块400在接收到相应的请求后,从第一用户的消息接收单元读取相应的推送消息并返回给第一用户查看,且在推送消息被成功接收后,应用服务器将第一用户的消息接收单元中的该推送消息删除。其中,第一用户的终端可以为具有通信功能的任意终端。
本发明提出的消息推送装置,当在线推送对象中的用户请求查看新消息时,从服务器上用户的消息接收单元中读取缓存的相应推送消息,而无需从庞大的数据库中查找数据,提高了用户查看未读消息的效率,同时也降低了数据库查询数据的压力。
进一步地,参照图4,基于第二实施例提出本发明消息推送装置第三实施例,在本实施例中,消息推送装置还包括:
第二处理模块500,用于当接收到离线推送对象中的第二用户发送的读取未读消息的请求时,根据第二用户的未读消息列表从数据库中查询标识对应的新消息,并将查询到的新消息对应生成的推送消息返回给第二用户。
第二用户是指离线推送对象中的任一用户。当第二用户上线后请求查看未读的推送消息时,应用服务器的第二处理模块500根据第二用户的未读消息列表中各个新消息的标识,采用拉方式获取相应的推送消息,也即,从数据库中查询相应发布者的相应原始新消息,并根据查询结果生成相应的推送消息返回给第二用户查看。
本发明提出的消息推送装置,对于确定为离线推送对象中的用户,通过记录在未读消息列表中的新消息的标识,在离线推送对象中的用户请求读取新消息时,从数据库中读取发布者的原始新消息并生成相应的推送消息后发送给用户,从而实现新消息的推送,与全用户(即推送对象中所有用户)的数据拉取相比,降低了数据库的处理压力。
进一步地,参照图5,基于第三实施例提出本发明消息推送装置第四实施例,在本实施例中,消息推送装置还包括维护模块600,维护模块600包括:
判断单元601,用于用户上线后,获取用户本次登录的时间,并判断用户是否存在于在线用户列表中;
每个用户在账号验证通过后即处于上线状态,此时,应用服务器会记录用户在本次登录的时间,其中,本次登录的时间可精确到年月日时分秒。之后,应用服务器的判断单元601根据用户的标识,判断用户是否存在于在线用户列表中。
第一更新单元602,用于如果用户已存在于在线用户列表中,则以用户本次登录的时间更新用户在在线用户列表中的最近一次登录时间,并根据更新后的最近一次登录时间和预置的在线维持时间间隔,计算并更新用户的在线截止时间;
如果用户的标识与在线用户列表中一个用户的标识相同,则认为用户存在于在线用户列表中,此时,应用服务器的第一更新单元602会将用户在在线用户列表中对应的最近一次登录时间,更新为用户的本次登录时间,并根据更新后的最近一次登录时间和在线维持时间间隔,重新计算用户的在线截止时间。
第二更新单元603,用于如果用户不存在于在线用户列表中,则将用户的用户标识、本次登录的时间、由本次登录的时间和在线维持时间间隔相加计算出的在线截止时间,对应添加到在线用户列表中。
如果用户的标识与在线用户列表中任意一个用户的标识都不相同,则认为用户不存在于在线用户列表中,此时,应用服务器的第二更新单元603将为用户增加一条记录,该记录包含了用户的标识、用户本次登录的时间,以及根据用户的本次登录时间和在线维持时间间隔计算得到的在线截止时间。
本发明提出的消息推送装置,设置了一个在线维持时间间隔,使得用户自最近一次登录时间开始,在在线维持时间间隔内,均被视为在线用户,从而在被视为仍保持在线的用户登录后,能够快速获取服务器缓存的推送消息,提高了用户查看推送消息的效率。
进一步地,参照图6,基于第四实施例提出本发明消息推送装置第五实施例,在本实施例中,维护模块600还包括:
记录删除模块604,用于如果在线用户列表中当前用户的在线截止时间大于当前时间,则将当前用户对应的记录从在线用户列表中删除。
当前时间可以为应用服务器的系统时间。如果在线用户列表中的一个用户的在线截止时间大于应用服务器的系统时间,则表明该用户不再被视为保持在线,此时,应用服务器的记录删除模块604将把该用户的记录从在线用户列表中删除,以保证在线用户列表中的每一个用户均满足视为保持在线的条件。
本发明提出的消息推送装置,在在线用户列表中的一个用户的在线截止时间大于应用服务器的系统时间时,便将该用户的记录从在线用户列表中删除,从而实现实时维护在线用户列表中数据的正确性,为服务器正确地确定出在线推送对象和离线推送对象做基础。
本发明进一步提供一种消息推送方法,如图7所示,示出了本发明消息推送方法第一实施例的流程示意图,消息推送方法包括:
S10、在接收到发布者发布的一条新消息后,获取在线用户列表和关注发布者的推送对象,并根据获取到的在线用户列表和推送对象,确定出在线推送对象和离线推送对象;
本发明消息推送方法基于服务器来实施,并由服务器的处理器执行相应的步骤。服务器可应用在消息订阅类型的系统中,如Feed系统。参照图2,图2为服务器的一个硬件结构示意图,服务器可以为一个独立的物理服务器,包括处理器10、内存20、存储器30(如硬盘)、系统总线40、通信装置50等,服务器上安装有系统程序、应用程序(如数据库)等;服务器还可以由几个物理服务器组成,这些物理服务器按照提供的功能可分为应用服务器、数据库服务器、缓存服务器、消息队列服务器等细化服务器,此时,消息推送装置可设置在应用服务器上,应用服务器能够与其他细化服务器之间进行通信,每个细化服务器均包括处理器10、内存20、存储器30(如硬盘)、系统总线40、通信装置50等,且安装有系统程序和应用程序等,另外,两种或两种以上的细化服务器提供的功能可根据需求设置在同一台物理服务器上。
在消息订阅类型的应用中,当一个用户发布一条新消息时,该用户就是该新消息的发布者。以上述第二种服务器为例,在该应用的应用服务器接收到该用户发布新消息的请求时,应用服务器同时能够获取到发布者发布的新消息。一方面,应用服务器会将发布者发布的新消息存储在数据库中,并将新消息发布出去,另一方面,应用服务器获取存储其上的在线用户列表,并从数据库中查询关注发布者的所有用户,这些关注发布者的用户即为新消息的推送对象。其中,推送对象中所包含的用户的总数大于或等于0,根据实际查询结果而定。数据库可设置在应用服务器中,还可设置在一个独立的数据库服务器中。
在线用户列表由应用服务器根据用户的实际登录情况统计得出,并存储在应用服务器中。在线用户列表记录有维持在线用户的用户标识、最近一次登录时间、在线截止时间,其中,在线截止时间由对应的最近一次登录时间和预置的在线维持时间间隔相加计算得出,且在在线用户列表中的用户的在线截止时间均大于或等于应用服务器当前的系统时间。最近一次登录时间和在线截止时间可精确到年月日时分秒,在线维持时间间隔的单位为小时,也可以为分钟等。
应用服务器将既存在于推送对象中同时又存在于在线用户列表中的用户,确定为在线推送对象。在线推送对象中的用户,并不一定是当前正在在线活跃的用户,也就是说,在线推送对象中用户不仅可以是推送对象中当前正在在线活跃的用户,还可以是推送对象中按照在线用户列表统计被认为仍保持在线的用户。在确定出推送对象中的在线推送对象后,推送对象中除在线推送对象中用户外的剩余用户即为离线推送对象。
S20、根据在线推送对象和新消息,生成与在线推送对象中用户相应个数的推送消息;
应用服务器在获取到在线推送对象后,将新消息按照在线推送对象中所包含的用户的总数,生成相应个数的推送消息,也即,在线推送对象中的每一个用户对应有一个待发送的推送消息。而对于离线推送对象中的用户,应用服务器则不会给这些用户生成相应的推送消息,也就是说,应用服务器仅对在线推送对象中的用户采用推方式进行新消息的推送,与现有的生成与推送对象中用户的总数相应个数的推送消息的方式相比,可大大减少应用服务器在短时间内生成推送消息的数量,降低了应用服务器的处理压力。
S30、将生成的推送消息对应存储在在线推送对象中各个用户的消息接收单元,以使在线推送对象中的用户请求查看新消息时,从消息接收单元读取相应的推送消息;将新消息的标识记录在离线推送对象中的各个用户的未读消息列表中,以使离线推送对象中的用户请求查看新消息时,根据未读消息列表中记录的标识获取新消息。
在消息订阅类型的应用中,每个注册成功的用户在服务器端对应有一个消息接收单元,如收件箱,用于接收用户未查收的未读消息。消息接收单元可设置在一个独立的缓存服务器中,也可设置在应用服务器的缓存区中。
应用服务器在生成与在线推送对象中用户总数相应个数的推送消息后,将各个推送消息对应存储在在线推送对象中各个用户的消息接收单元,而对于离线推送对象中的用户,应用服务器将新消息的标识等信息记录在各个用户的未读消息列表中,以采用推拉结合的方式对用户请求查看新消息的请求作出响应处理。其中,未读消息列表记录了用户离线期间未接收到的推送消息的信息。
可以理解,未读消息列表还可以理解为,用户所接收的所有消息中处于未读状态的消息的集合,处于未读状态的消息的详细内容可在用户刷新相应页面时由应用服务器即时查询数据库获得。
本发明提出的消息推送方法,对于发布者发布的一条新消息,仅对确定为在线推送对象中的用户生成相应个数的推送消息,并将生成的推送消息对应存储在在线推送对象中的各个用户的消息接收单元,以使在线推送对象中的用户请求查看新消息时,从消息接收单元读取相应的推送消息;而对于确定为离线推送对象中的用户,仅在其未读消息列表中记录新消息的标识,以使离线推送对象中的用户请求查看新消息时,根据未读消息列表中记录的标识获取新消息,大大减少了服务器在短时间内生成推送消息的数量,采用推拉结合的方式,降低了单纯采用推方式时服务器的处理压力及单纯采用拉方式时数据库的处理压力,从而提高用户查看推送消息的效率。
进一步地,参照图8,基于上述第一实施例提出本发明消息推送方法第二实施例,在本实施例中,消息推送方法还包括:
S41、当接收到在线推送对象中的第一用户发送的读取未读消息的请求时,从第一用户的消息接收单元读取相应的推送消息并返回给第一用户。
第一用户是指在线推送对象中的任一用户。当在线推送对象中的第一用户根据应用上的提示想要查看新消息时,第一用户的终端向应用服务器发送读取未读消息的请求,应用服务器在接收到相应的请求后,从第一用户的消息接收单元读取相应的推送消息并返回给第一用户查看,且在推送消息被成功接收后,应用服务器将第一用户的消息接收单元中的该推送消息删除。其中,第一用户的终端可以为具有通信功能的任意终端。
本发明提出的消息推送方法,当在线推送对象中的用户请求查看新消息时,从服务器上用户的消息接收单元中读取缓存的相应推送消息,而无需从庞大的数据库中查找数据,提高了用户查看未读消息的效率,同时也降低了数据库查询数据的压力。
进一步地,参照图9,基于上述第一实施例提出本发明消息推送方法第三实施例,在本实施例中,消息推送方法还包括:
S42、当接收到离线推送对象中的第二用户发送的读取未读消息的请求时,根据第二用户的未读消息列表从数据库中查询标识对应的新消息,并将查询到的新消息对应生成的推送消息返回给第二用户。
第二用户是指离线推送对象中的任一用户。当第二用户上线后请求查看未读的推送消息时,应用服务器根据第二用户的未读消息列表中各个新消息的标识,采用拉方式获取相应的推送消息,也即,从数据库中查询相应发布者的相应原始新消息,并根据查询结果生成相应的推送消息返回给第二用户查看。
本发明提出的消息推送方法,对于确定为离线推送对象中的用户,通过记录在未读消息列表中的新消息的标识,在离线推送对象中的用户请求读取新消息时,从数据库中读取发布者的原始新消息并生成相应的推送消息后发送给用户,从而实现新消息的推送,与全用户(即推送对象中所有用户)的数据拉取相比,降低了数据库的处理压力。
进一步地,参照图10,基于上述第二实施例或上述第三实施例提出本发明消息推送方法第四实施例,在本实施例中,消息推送方法还包括在线用户列表的维护,在线用户列表的维护包括:
S51、用户上线后,获取用户本次登录的时间,并判断用户是否存在于在线用户列表中;
每个用户在账号验证通过后即处于上线状态,此时,应用服务器会记录用户在本次登录的时间,其中,本次登录的时间可精确到年月日时分秒。之后,应用服务器根据用户的标识,判断用户是否存在于在线用户列表中。
S52、如果用户已存在于在线用户列表中,则以用户本次登录的时间更新用户在在线用户列表中的最近一次登录时间,并根据更新后的最近一次登录时间和预置的在线维持时间间隔,计算并更新用户的在线截止时间;
如果用户的标识与在线用户列表中一个用户的标识相同,则认为用户存在于在线用户列表中,此时,应用服务器会将用户在在线用户列表中对应的最近一次登录时间,更新为用户的本次登录时间,并根据更新后的最近一次登录时间和在线维持时间间隔,重新计算用户的在线截止时间。
S53、如果用户不存在于在线用户列表中,则将用户的用户标识、本次登录的时间、由本次登录的时间和在线维持时间间隔相加计算出的在线截止时间,对应添加到在线用户列表中。
如果用户的标识与在线用户列表中任意一个用户的标识都不相同,则认为用户不存在于在线用户列表中,此时,应用服务器将为用户增加一条记录,该记录包含了用户的标识、用户本次登录的时间,以及根据用户的本次登录时间和在线维持时间间隔计算得到的在线截止时间。
本发明提出的消息推送方法,设置了一个在线维持时间间隔,使得用户自最近一次登录时间开始,在在线维持时间间隔内,均被视为在线用户,从而在被视为仍保持在线的用户登录后,能够快速获取服务器缓存的推送消息,提高了用户查看推送消息的效率。
进一步地,基于上述第四实施例提出本发明消息推送方法第五实施例,在本实施例中,在线用户列表的维护还包括:
如果在线用户列表中当前用户的在线截止时间大于当前时间,则将当前用户对应的记录从在线用户列表中删除。
当前时间可以为应用服务器的系统时间。如果在线用户列表中的一个用户的在线截止时间大于应用服务器的系统时间,则表明该用户不再被视为保持在线,此时,应用服务器将把该用户的记录从在线用户列表中删除,以保证在线用户列表中的每一个用户均满足视为保持在线的条件。
本发明提出的消息推送方法,在在线用户列表中的一个用户的在线截止时间大于应用服务器的系统时间时,便将该用户的记录从在线用户列表中删除,从而实现实时维护在线用户列表中数据的正确性,为服务器正确地确定出在线推送对象和离线推送对象做基础。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种消息推送装置,其特征在于,所述消息推送装置包括:
确定模块,用于在接收到发布者发布的一条新消息后,获取在线用户列表和关注所述发布者的推送对象,并根据获取到的所述在线用户列表和所述推送对象,确定出在线推送对象和离线推送对象;
生成模块,用于根据所述在线推送对象和所述新消息,生成与所述在线推送对象中用户相应个数的推送消息;
推送模块,用于将生成的推送消息对应存储在所述在线推送对象中各个用户的消息接收单元,并将所述新消息的标识记录在所述离线推送对象中的各个用户的未读消息列表中。
2.如权利要求1所述的消息推送装置,其特征在于,所述消息推送装置还包括:
第一处理模块,用于当接收到所述在线推送对象中的第一用户发送的读取未读消息的请求时,从所述第一用户的消息接收单元读取相应的推送消息并返回给所述第一用户。
3.如权利要求1或2所述的消息推送装置,其特征在于,所述消息推送装置还包括:
第二处理模块,用于当接收到所述离线推送对象中的第二用户发送的读取未读消息的请求时,根据所述第二用户的未读消息列表从数据库中查询标识对应的新消息,并将查询到的新消息对应生成的推送消息返回给所述第二用户。
4.如权利要求1所述的消息推送装置,其特征在于,所述消息推送装置还包括维护模块,所述维护模块包括:
判断单元,用于用户上线后,获取所述用户本次登录的时间,并判断所述用户是否存在于所述在线用户列表中;
第一更新单元,用于如果所述用户已存在于所述在线用户列表中,则以所述用户本次登录的时间更新所述用户在所述在线用户列表中的最近一次登录时间,并根据更新后的最近一次登录时间和预置的在线维持时间间隔,计算并更新所述用户的在线截止时间;
第二更新单元,用于如果所述用户不存在于所述在线用户列表中,则将所述用户的用户标识、本次登录的时间、由本次登录的时间和所述在线维持时间间隔相加计算出的在线截止时间,对应添加到所述在线用户列表中。
5.如权利要求4所述的消息推送装置,其特征在于,所述维护模块还包括:
记录删除模块,用于如果所述在线用户列表中当前用户的在线截止时间大于当前时间,则将当前用户对应的记录从所述在线用户列表中删除。
6.一种消息推送方法,其特征在于,所述消息推送方法包括:
在接收到发布者发布的一条新消息后,获取在线用户列表和关注所述发布者的推送对象,并根据获取到的所述在线用户列表和所述推送对象,确定出在线推送对象和离线推送对象;
根据所述在线推送对象和所述新消息,生成与所述在线推送对象中用户相应个数的推送消息;
将生成的推送消息对应存储在所述在线推送对象中各个用户的消息接收单元,并将所述新消息的标识记录在所述离线推送对象中的各个用户的未读消息列表中。
7.如权利要求6所述的消息推送方法,其特征在于,所述消息推送方法还包括:
当接收到所述在线推送对象中的第一用户发送的读取未读消息的请求时,从所述第一用户的消息接收单元读取相应的推送消息并返回给所述第一用户。
8.如权利要求6所述的消息推送方法,其特征在于,所述消息推送方法还包括:
当接收到所述离线推送对象中的第二用户发送的读取未读消息的请求时,根据所述第二用户的未读消息列表从数据库中查询标识对应的新消息,并将查询到的新消息对应生成的推送消息返回给所述第二用户。
9.如权利要求6所述的消息推送方法,其特征在于,所述消息推送方法还包括所述在线用户列表的维护,所述在线用户列表的维护包括:
用户上线后,获取所述用户本次登录的时间,并判断所述用户是否存在于所述在线用户列表中;
如果所述用户已存在于所述在线用户列表中,则以所述用户本次登录的时间更新所述用户在所述在线用户列表中的最近一次登录时间,并根据更新后的最近一次登录时间和预置的在线维持时间间隔,计算并更新所述用户的在线截止时间;
如果所述用户不存在于所述在线用户列表中,则将所述用户的用户标识、本次登录的时间、由本次登录的时间和所述在线维持时间间隔相加计算出的在线截止时间,对应添加到所述在线用户列表中。
10.如权利要求9所述的消息推送方法,其特征在于,所述在线用户列表的维护还包括:
如果所述在线用户列表中当前用户的在线截止时间大于当前时间,则将当前用户对应的记录从所述在线用户列表中删除。
CN201610173870.8A 2016-03-24 2016-03-24 消息推送装置及方法 Active CN105827706B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610173870.8A CN105827706B (zh) 2016-03-24 2016-03-24 消息推送装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610173870.8A CN105827706B (zh) 2016-03-24 2016-03-24 消息推送装置及方法

Publications (2)

Publication Number Publication Date
CN105827706A true CN105827706A (zh) 2016-08-03
CN105827706B CN105827706B (zh) 2020-11-20

Family

ID=56524571

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610173870.8A Active CN105827706B (zh) 2016-03-24 2016-03-24 消息推送装置及方法

Country Status (1)

Country Link
CN (1) CN105827706B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657327A (zh) * 2016-12-20 2017-05-10 上海银禾油信息技术有限公司 消息推送方法及装置
CN107742255A (zh) * 2017-09-08 2018-02-27 小草数语(北京)科技有限公司 社交网站信息流同步方法、装置及设备
CN107979624A (zh) * 2016-10-24 2018-05-01 腾讯科技(深圳)有限公司 一种信息推送方法、装置及具有快捷访问功能的客户端
CN108055341A (zh) * 2017-12-22 2018-05-18 芝倪信息技术(大连)有限公司 一种办公用用于移动办公软件的消息推送系统及方法
CN108055199A (zh) * 2018-01-17 2018-05-18 吉浦斯信息咨询(深圳)有限公司 支持离线消息保存的移动推送方法及系统
CN108471445A (zh) * 2018-04-02 2018-08-31 北京奇艺世纪科技有限公司 一种关注对象内容更新通知方法和装置
CN109918210A (zh) * 2019-01-31 2019-06-21 福建天泉教育科技有限公司 一种展示离线消息的方法及终端
CN110430283A (zh) * 2019-08-20 2019-11-08 杭州市电力设计院有限公司余杭分公司 一种输电网规划的服务推送方法及相关设备
CN110445705A (zh) * 2018-05-02 2019-11-12 腾讯科技(深圳)有限公司 消息发送方法、装置、系统、计算机设备和存储介质
CN110956485A (zh) * 2018-09-27 2020-04-03 千寻位置网络有限公司 基于RocketMQ的消息订阅方法及组件、消息订阅系统
CN111464599A (zh) * 2020-03-20 2020-07-28 腾讯科技(深圳)有限公司 消息推送方法、系统、装置、计算机可读存储介质及设备
CN111901366A (zh) * 2019-05-06 2020-11-06 广州市百果园信息技术有限公司 一种数据推送方法、装置、设备和存储介质
CN111935209A (zh) * 2020-06-28 2020-11-13 航天信息股份有限公司 一种基于用户状态对feed信息进行推送的方法及系统
CN112883316A (zh) * 2021-03-02 2021-06-01 广州市百果园信息技术有限公司 数据处理方法、装置、电子设备及存储介质
CN113824763A (zh) * 2021-08-10 2021-12-21 武汉联影医疗科技有限公司 消息推送方法、装置、计算机设备和存储介质
CN114567630A (zh) * 2022-04-29 2022-05-31 南京信思顺信息技术有限公司 一种基于流程引擎的智能表单生成方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095688A (zh) * 2012-12-21 2013-05-08 大唐移动通信设备有限公司 客户端控制方法和服务器
CN104123296A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 一种生成消息索引以便向接收者呈现消息的方法及装置
WO2015183829A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Proxied push

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103095688A (zh) * 2012-12-21 2013-05-08 大唐移动通信设备有限公司 客户端控制方法和服务器
CN104123296A (zh) * 2013-04-26 2014-10-29 阿里巴巴集团控股有限公司 一种生成消息索引以便向接收者呈现消息的方法及装置
WO2015183829A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Proxied push

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107979624B (zh) * 2016-10-24 2020-12-15 腾讯科技(深圳)有限公司 一种信息推送方法、装置及具有快捷访问功能的客户端
CN107979624A (zh) * 2016-10-24 2018-05-01 腾讯科技(深圳)有限公司 一种信息推送方法、装置及具有快捷访问功能的客户端
CN106657327A (zh) * 2016-12-20 2017-05-10 上海银禾油信息技术有限公司 消息推送方法及装置
CN107742255A (zh) * 2017-09-08 2018-02-27 小草数语(北京)科技有限公司 社交网站信息流同步方法、装置及设备
CN108055341A (zh) * 2017-12-22 2018-05-18 芝倪信息技术(大连)有限公司 一种办公用用于移动办公软件的消息推送系统及方法
CN108055199A (zh) * 2018-01-17 2018-05-18 吉浦斯信息咨询(深圳)有限公司 支持离线消息保存的移动推送方法及系统
CN108471445A (zh) * 2018-04-02 2018-08-31 北京奇艺世纪科技有限公司 一种关注对象内容更新通知方法和装置
CN108471445B (zh) * 2018-04-02 2021-08-13 北京奇艺世纪科技有限公司 一种关注对象内容更新通知方法和装置
CN110445705A (zh) * 2018-05-02 2019-11-12 腾讯科技(深圳)有限公司 消息发送方法、装置、系统、计算机设备和存储介质
CN110445705B (zh) * 2018-05-02 2021-08-03 腾讯科技(深圳)有限公司 消息发送方法、装置、系统、计算机设备和存储介质
CN110956485B (zh) * 2018-09-27 2022-11-25 千寻位置网络有限公司 基于RocketMQ的消息订阅方法及组件、消息订阅系统
CN110956485A (zh) * 2018-09-27 2020-04-03 千寻位置网络有限公司 基于RocketMQ的消息订阅方法及组件、消息订阅系统
CN109918210A (zh) * 2019-01-31 2019-06-21 福建天泉教育科技有限公司 一种展示离线消息的方法及终端
CN109918210B (zh) * 2019-01-31 2021-03-26 福建天泉教育科技有限公司 一种展示离线消息的方法及终端
CN111901366A (zh) * 2019-05-06 2020-11-06 广州市百果园信息技术有限公司 一种数据推送方法、装置、设备和存储介质
CN111901366B (zh) * 2019-05-06 2023-08-29 广州市百果园信息技术有限公司 一种数据推送方法、装置、设备和存储介质
CN110430283A (zh) * 2019-08-20 2019-11-08 杭州市电力设计院有限公司余杭分公司 一种输电网规划的服务推送方法及相关设备
CN111464599B (zh) * 2020-03-20 2021-05-07 腾讯科技(深圳)有限公司 消息推送方法、系统、装置、计算机可读存储介质及设备
CN111464599A (zh) * 2020-03-20 2020-07-28 腾讯科技(深圳)有限公司 消息推送方法、系统、装置、计算机可读存储介质及设备
CN111935209A (zh) * 2020-06-28 2020-11-13 航天信息股份有限公司 一种基于用户状态对feed信息进行推送的方法及系统
CN112883316A (zh) * 2021-03-02 2021-06-01 广州市百果园信息技术有限公司 数据处理方法、装置、电子设备及存储介质
CN113824763A (zh) * 2021-08-10 2021-12-21 武汉联影医疗科技有限公司 消息推送方法、装置、计算机设备和存储介质
CN113824763B (zh) * 2021-08-10 2024-03-01 武汉联影医疗科技有限公司 消息推送方法、装置、计算机设备和存储介质
CN114567630A (zh) * 2022-04-29 2022-05-31 南京信思顺信息技术有限公司 一种基于流程引擎的智能表单生成方法

Also Published As

Publication number Publication date
CN105827706B (zh) 2020-11-20

Similar Documents

Publication Publication Date Title
CN105827706A (zh) 消息推送装置及方法
CN100483405C (zh) 用于警报传递体系结构的方法和系统
US9223867B2 (en) Methods and systems for data processing
US8260820B2 (en) Method and apparatus for searching
US20080270233A1 (en) Tracking offline user activity and computing rate information for offline publishers
CN101552801A (zh) 一种在线浏览和下载用户群组通讯录的方法和系统
CN102067126A (zh) 对分布式搜索的结果进行货币化和优先级区分
CN111310061B (zh) 全链路多渠道归因方法、装置、服务器及存储介质
CN103546517A (zh) 网络信息推送系统和方法
CN101436927A (zh) 用于文件传输管理的系统和方法
CN111327514A (zh) 微信图文消息群发方法、系统、服务器及存储介质
CN103685606A (zh) 关联域名的获取方法和系统以及网站管理员权限验证方法
CN106487655A (zh) 一种消息交互方法、装置及处理服务器
CN100452704C (zh) 一种发布博客文章的方法和系统
CN111159590A (zh) 一种基于前后端业务调用链路的串联方法及装置
CN108650123B (zh) 故障信息记录方法、装置、设备和存储介质
CN110533456A (zh) 一种优惠券信息推送方法、系统及服务器
CN107451301B (zh) 实时投递账单邮件的处理方法、装置、设备和存储介质
CN111143404B (zh) 一种业务处理方法及装置
US20140379820A1 (en) Email address and telephone number unification systems and methods
CN103312584A (zh) 一种在网络社区中发布信息的方法与设备
CN113434588B (zh) 基于移动通信话单的数据挖掘分析方法及装置
KR102170016B1 (ko) 구매이력 정보를 기반으로 최저가 가격비교목록을 제공하기 위한 서비스 장치, 시스템 및 방법
CN103731798A (zh) 一种电信业务订购的方法和系统
CN102412986B (zh) 基于一体化标识网络的运营商统一服务平台系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20201103

Address after: D702, building 5, Shenzhen software industry base, No. 11, 13, 15, No. 14 and No. 16, Haitian No. 2 Road, Binhai community, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Shifang Ronghai Technology Co., Ltd

Address before: 518057 Guangdong Province, Shenzhen high tech Zone of Nanshan District City, No. 9018 North Central Avenue's innovation building A, 6-8 layer, 10-11 layer, B layer, C District 6-10 District 6 floor

Applicant before: NUBIA TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant