CN108390933B - 消息分发方法、装置、服务器及存储介质 - Google Patents

消息分发方法、装置、服务器及存储介质 Download PDF

Info

Publication number
CN108390933B
CN108390933B CN201810159418.5A CN201810159418A CN108390933B CN 108390933 B CN108390933 B CN 108390933B CN 201810159418 A CN201810159418 A CN 201810159418A CN 108390933 B CN108390933 B CN 108390933B
Authority
CN
China
Prior art keywords
subscription account
subscription
sequence number
information
target channel
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.)
Active
Application number
CN201810159418.5A
Other languages
English (en)
Other versions
CN108390933A (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.)
Guangzhou Cubesili Information Technology Co Ltd
Original Assignee
Guangzhou Cubesili Information 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 Guangzhou Cubesili Information Technology Co Ltd filed Critical Guangzhou Cubesili Information Technology Co Ltd
Priority to CN201810159418.5A priority Critical patent/CN108390933B/zh
Publication of CN108390933A publication Critical patent/CN108390933A/zh
Application granted granted Critical
Publication of CN108390933B publication Critical patent/CN108390933B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种消息分发方法、装置、服务器及存储介质,属于计算机技术领域。该消息分发方法包括:接收对应目标频道的信息发布通知;根据预先存储的频道与订阅账户的对应关系,确定目标频道对应的订阅账户,获取目标频道对应的订阅账户的登录状态;如果目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储信息发布通知;当检测到第一订阅账户为在线状态时,向第一订阅账户的登录终端发送信息发布通知。本申请在第一订阅账户处于在线状态时,向该第一订阅账户发送目标频道的信息发布通知,避免第一订阅账户永远无法接收到在该第一订阅账户处于离线状态时,发布账户发布的目标频道的信息发布通知的效果。

Description

消息分发方法、装置、服务器及存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种消息分发方法、装置、服务器及存储介质。
背景技术
由于物联网的海量数据具有实时、高吞吐、数据量巨大以及数据内容杂的特性,因此需要一种能够支持实时、高并发、支持海量数据的消息分发机制对这些海量数据进行处理。
Redis是非关系型数据库,属于高性能的键值对数据库存储系统。Redis的架构包括两个部分:Redis客户端和Redis服务器。其中,Redis客户端负责向Redis服务器发送请求并接受来自Redis服务器的响应,Redis服务器负责处理Redis客户端的请求(比如存储数据、修改数据等)。请参考图1,其示出了本申请一个实施例提供的基于Redis的订阅发布模式的架构图。基于Redis的订阅发布模式定义了一种一对多的依赖关系,在多个订阅账户(subscriber_1,subscriber_2,subscriber_3)同时监听一个频道(channel)的情况下,当发布账户(publisher)在该频道发送消息(channel msg)时,服务器会将该消息(msg)发送至所有订阅该频道的订阅账户。其中,发布账户和订阅账户均为Redis客户端,Channel为Redis服务器定义的频道。
由于Redis服务器未对消息提供持久化存储,因此消息被发送后,如果没有订阅账户接收,消息则会丢失,导致一旦订阅账户未接收到该消息,则永远无法接收到该消息。
发明内容
本申请实施例提供了一种消息分发方法、装置、服务器及存储介质。所述技术方案如下:
第一方面,提供了一种消息分发方法,所述方法包括:
接收对应目标频道的信息发布通知;
根据预先存储的频道与订阅账户的对应关系,确定所述目标频道对应的订阅账户,获取所述目标频道对应的订阅账户的登录状态;
如果所述目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储所述信息发布通知;
当检测到所述第一订阅账户为在线状态时,向所述第一订阅账户的登录终端发送所述信息发布通知。
第二方面,提供了一种消息分发装置,所述装置包括:
接收模块,用于接收对应目标频道的信息发布通知;
第一确定模块,用于根据预先存储的频道与订阅账户的对应关系,确定所述目标频道对应的订阅账户,获取所述目标频道对应的订阅账户的登录状态;
存储模块,用于如果所述目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储所述信息发布通知;
发送模块,用于当检测到所述第一订阅账户为在线状态时,向所述第一订阅账户的登录终端发送所述信息发布通知。
第三方面,提供了一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的消息分发方法。
第四方面,提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的消息分发方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供的方法,服务器在接收到目标频道的信息发布通知后,如果订阅目标频道的订阅账户中存在离线状态的第一订阅账户,则存储该信息发布通知,并当第一订阅账户为在线状态时,将该信息发布通知发送给第一订阅账户;由于服务器会对未能被所有订阅目标频道的订阅账户接收到的信息发布通知进行存储,并当未接收到该信息发布通知的订阅账户为在线状态时,将信息发布通知发送给该订阅账户,因此解决了现有技术中由于Redis服务器未对消息提供持久化存储,因此消息被发送后,如果没有订阅账户接收,消息则会丢失,导致一旦订阅账户未接收到该消息,则永远无法接收到该消息的问题,达到了在第一订阅账户处于在线状态时,向该第一订阅账户发送目标频道的信息发布通知,避免第一订阅账户永远无法接收到在该第一订阅账户处于离线状态时,发布账户发布的目标频道的信息发布通知的效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请一个实施例提供的基于Redis的订阅发布模式的架构图;
图2示出了本申请一个实施例提供的消息分发方法的方法流程图;
图3示出了本申请一个实施例提供的消息分发方法的方法流程图;
图4示出了本申请一个实施例中提供的消息分发装置的结构方框图;
图5示出了本申请一个示例性实施例提供的服务器的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在本申请实施例中,提供了一种消息分发方法,由于服务器会对未能被所有订阅目标频道的订阅账户接收到的信息发布通知进行存储,并当未接收到该信息发布通知的订阅账户为在线状态时,将信息发布通知发送给该订阅账户,因此解决了现有技术中由于Redis未对消息提供持久化存储,因此消息被发送后,如果没有订阅账户接收,消息则会丢失,导致一旦订阅账户未接收到该消息,则永远无法接收到该消息的问题,达到了在第一订阅账户处于在线状态时,向该第一订阅账户发送目标频道的信息发布通知,避免第一订阅账户永远无法接收到在该第一订阅账户处于离线状态时,发布账户发布的目标频道的信息发布通知的效果。下面将基于上面所述的本申请实施例涉及的共性方面,对本申请实施例进行进一步详细说明。
在多用户订阅发布场景中,作为发布账户的用户,可以发布多个频道的信息发布通知;作为订阅账户的用户,可以订阅多个频道,并接收所订阅的多个频道的信息发布通知。在具体应用中,用户可以在用户终端上以网页、客户端或者应用软件等形式使用订阅发布系统,通过用户终端作为发布信息发布通知和/或订阅信息发布通知的媒介,与服务器进行通信。其中,用户终端可以是手机、计算机、平板电脑、智能穿戴设备等。
实施例1
请参考图2,其示出了本申请一个实施例提供的消息分发方法的方法流程图。该消息分发方法可以包括如下步骤:
步骤201,接收对应目标频道的信息发布通知。
具体的,服务器接收发布账户对目标频道的信息发布通知。
步骤202,根据预先存储的频道与订阅账户的对应关系,确定目标频道对应的订阅账户,获取目标频道对应的订阅账户的登录状态。
可选的,订阅账户的登录状态在用户登录或退出登录时更新,或者通过轮询方式定时检测更新。
其中,订阅目标频道的订阅账户的数量可以是多个,用户状态为在线状态或者离线状态。本步骤可以在接收发布账户对目标频道的信息发布通知之后,获取目标频道对应的订阅账户的登录状态;也可以在接收发布账户对目标频道的信息发布通知之后,从本地定时更新的用户状态信息中获取目标频道对应的订阅账户的登录状态。
步骤203,如果目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储信息发布通知。
其中,第一订阅账户为暂时离开或退出的账户。
由于当订阅账户的登陆终端所处的网络状况较差时,因此,即使该订阅账户未退出,登陆终端仍可能因为网络问题无法接收到服务器发送的存储信息发布通知。可选的,第一订阅账户为登录网络状况较差的账户。
下面以第一订阅账户为退出和网络状况较差的账户进行举例:
服务器在接收对应目标频道的信息发布通知之后,向订阅该目标频道的所有订阅账户发送用于触发订阅账户的登陆客户端进行响应的消息,统计预定时长内对该消息进行响应的响应订阅账户的数量,当响应订阅账户的数量等于目标频道对应的订阅账户的数量时,说明目标频道对应的订阅账户中不存在离线状态的第一订阅账户,服务器则直接将信息发布通知发送至目标频道对应的订阅账户,当响应订阅账户的数量小于目标频道对应的订阅账户的数量时,判定目标频道对应的订阅账户中存在离线状态的第一订阅账户,继而先存储信息发布通知,再将信息发布通知发送至目标频道对应的订阅账户。
其中,信息发布通知可通过列表、文件、队列、键值等形式存储。
步骤204,当检测到第一订阅账户为在线状态时,向第一订阅账户的登录终端发送信息发布通知。
其中,第一订阅账户在线为从暂时离开为在线的账户,或者重新登录的账户。
具体的,当服务器检测到第一订阅账户在线时,检测是否存储有未发送至该第一订阅账户的信息发布通知,如果存储有未发送至该第一订阅账户的信息发布通知,则向第一订阅账户的登录终端发送信息发布通知。
综上所述,本申请实施例提供的方法,服务器在接收到目标频道的信息发布通知后,如果订阅目标频道的订阅账户中存在离线状态的第一订阅账户,则存储该信息发布通知,并当第一订阅账户为在线状态时,将该信息发布通知发送给第一订阅账户;由于服务器会对未能被所有订阅目标频道的订阅账户接收到的信息发布通知进行存储,并当未接收到该信息发布通知的订阅账户为在线状态时,将信息发布通知发送给该订阅账户,因此解决了现有技术中由于Redis服务器未对消息提供持久化存储,因此消息被发送后,如果没有订阅账户接收,消息则会丢失,导致一旦订阅账户未接收到该消息,则永远无法接收到该消息的问题,达到了在第一订阅账户处于在线状态时,向该第一订阅账户发送目标频道的信息发布通知,避免第一订阅账户永远无法接收到在该第一订阅账户处于离线状态时,发布账户发布的目标频道的信息发布通知的效果。
在上述技术方案的基础上,该消息分发方法还包括:当服务器接收到用于订阅目标频道的订阅消息时,获取订阅消息中携带的第二订阅账户,将目标频道与第二订阅账户,对应的添加到预先存储的频道与订阅账户的对应关系中。
服务器接收到用于订阅目标频道的订阅消息后,为了保证信息发布通知的准确推送,服务器会及时更新频道与订阅账户的对应关系的对应关系。
对应的,当服务器接收到用于取消订阅目标频道的取消订阅消息时,获取取消订阅消息中携带的第三订阅账户,从预先存储的频道与订阅账户的对应关系中删除目标频道与第三订阅账户的对应关系。
实施例2
请参考图3,其示出了本申请另一个实施例提供的消息分发方法的方法流程图。该消息分发方法可以包括如下步骤:
步骤301,接收对应目标频道的信息发布通知。
步骤302,根据不同的信息发布通知的接收时间先后顺序,为当前接收的信息发布通知分配顺序编号。
其中,同一频道的信息发布通知对应的顺序编号不同,即该顺序编号用于唯一标识同一频道的信息发布通知。
可选的,根据不同的信息发布通知的接收时间先后顺序,按照递增顺序为当前接收的信息发布通知分配顺序编号。比如,服务器接收到信息分发布通知a的时刻早于接收到信息发布通知b的时刻,为信息发布通知a分配的顺序编号小于为信息发布通知b分配的顺序编号。
步骤303,根据预先存储的频道与订阅账户的对应关系,确定目标频道对应的订阅账户,获取目标频道对应的订阅账户的登录状态。
可选的,每当订阅账户下线时,服务器确定当前存储的信息发布通知对应的顺序编号中,排序最后的顺序编号,记录为当前下线的订阅账户对应的顺序编号。
订阅账户下线说明该在订阅账户重新上线之前,该订阅账户无法接收到服务器发送的目标频道的信息发布日通知,为了保证信息发布通知的准确推送,服务器在当前存储的信息发布通知对应的顺序编号中,排序最后的顺序编号记录为当前下线的订阅账户对应的顺序编号,使得在订阅账户重新上线后,服务器能将排在顺序编号之后的信息发布通知发送给该订阅账户。
步骤304,如果目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储信息发布通知。
步骤305,当检测到第一订阅账户为在线状态时,确定第一订阅账户对应的第一顺序编号。
其中,第一订阅账户对应的第一顺序编号为该第一订阅账户最近一次下线时,服务器所存储的信息发布通知对应的顺序编号中,排序最后的顺序编号。
可选的,信息发布通知对应的顺序编号以及第一订阅账户对应的第一顺序编号通过键值等形式存储。
步骤306,在当前存储的信息发布通知中,获取顺序编号排在第一顺序编号之后的信息发布通知。
顺序编号排在第一顺序编号之后的信息发布通知为在第一订阅账户下线期间,该第一订阅账户未接收到的信息发布通知。
步骤307,向第一订阅账户的登录终端,发送顺序编号排在第一顺序编号之后的信息发布通知。
步骤308,删除第一订阅账户对应的第一顺序编号。
服务器将顺序编号排在第一顺序编号之后的信息发布通知全部发送给第一订阅账户之后,将第一订阅账户对应的第一顺序编号删除,从而避免在第一订阅账户再次上线时,服务器向第一订阅账户发送重复的信息发布通知。
需要说明的是,本实施例中步骤301与步骤201类似,步骤304与步骤203类似,因此本实施例不再对步骤301和步骤304赘述说明。
综上所述,本申请实施例提供的方法,服务器在接收到目标频道的信息发布通知后,如果订阅目标频道的订阅账户中存在离线状态的第一订阅账户,则存储该信息发布通知,并当第一订阅账户为在线状态时,将该信息发布通知发送给第一订阅账户;由于服务器会对未能被所有订阅目标频道的订阅账户接收到的信息发布通知进行存储,并当未接收到该信息发布通知的订阅账户为在线状态时,将信息发布通知发送给该订阅账户,因此解决了现有技术中由于Redis服务器未对消息提供持久化存储,因此消息被发送后,如果没有订阅账户接收,消息则会丢失,导致一旦订阅账户未接收到该消息,则永远无法接收到该消息的问题,达到了在第一订阅账户处于在线状态时,向该第一订阅账户发送目标频道的信息发布通知,避免第一订阅账户永远无法接收到在该第一订阅账户处于离线状态时,发布账户发布的目标频道的信息发布通知的效果。
在一种可能实现的方式中,为了控制服务器所存储的信息发布通知的数量,避免信息发布通知过分占用服务器的存储空间,服务器删除信息发布通知的情况至少存在下述两种情况:
第一种情况,当目标频道的所有订阅账户对应的顺序编号均排在第二顺序编号之后时,在当前存储的信息发布通知中,删除第二顺序编号对应的信息发布通知。
由于目标频道的所有订阅账户对应的顺序编号均排在第二顺序编号之后,说明该第二顺序编号对应的信息发布通知已经全部发送给该目标频道的所有订阅账户,因此服务器可将第二顺序编号对应的信息发布通知删除。
第二种情况,当第二顺序编号对应的信息发布通知的存储时长达到预设时长时,删除第二顺序编号对应的信息发布通知。
由于信息发布通知的存储时长越长,该信息发布通知的及时性就越低,及时性越低的信息发布通知对订阅账户来越无用,因此服务器将存储时长达到预设时长的信息发布通知删除。
在实际应用中:
1、如果本申请所保护的方案在Master-slave模式中,sync数据同步需过滤本申请新增的内部键值;
2、如果本申请所保护的方案在AOF模式中,内部键值的更新均需写入aof文件;
3、为了兼容原redis所有命令,如果本申请所保护的方案在实际实现时可通过添加rsubscribe/rpsubscribe/runsubscribe/rpunsubscribe命令来替代修改原有的subscribe/psubscribe/unsubscribe/punsubscribe命令。
下述为本申请装置实施例,对于装置实施例中未详尽描述的细节,可以参考上述一一对应的方法实施例。
请参考图4,图4是本申请一个实施例中提供的消息分发装置的结构方框图。该消息分发装置包括:接收模块401、第一确定模块402、存储模块403和发送模块404。
接收模块401,用于接收对应目标频道的信息发布通知;
第一确定模块402,用于根据预先存储的频道与订阅账户的对应关系,确定目标频道对应的订阅账户,获取目标频道对应的订阅账户的登录状态;
存储模块403,用于如果目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储信息发布通知;
发送模块404,用于当检测到第一订阅账户为在线状态时,向第一订阅账户的登录终端发送信息发布通知。
在一种可能的实现方式中,该装置还包括:分配模块和第二确定模块。
分配模块,用于在接收对应目标频道的信息发布通知之后,根据不同的信息发布通知的接收时间先后顺序,为当前接收的信息发布通知分配顺序编号;
第二确定模块,用于每当订阅账户下线时,确定当前存储的信息发布通知对应的顺序编号中,排序最后的顺序编号,记录为当前下线的订阅账户对应的顺序编号;
该发送模块404,包括:确定单元、获取单元和发送单元。
确定单元,用于当检测到第一订阅账户为在线状态时,确定第一订阅账户对应的第一顺序编号;
获取单元,用于在当前存储的信息发布通知中,获取顺序编号排在第一顺序编号之后的信息发布通知;
发送单元,用于向第一订阅账户的登录终端,发送顺序编号排在第一顺序编号之后的信息发布通知。
在一种可能的实现方式中,该装置还包括:第一删除模块。
第一删除模块,用于在向第一订阅账户的登录终端发送信息发布通知之后,删除第一订阅账户对应的第一顺序编号。
在一种可能的实现方式中,该装置还包括:第二删除模块和第三删除模块。
第二删除模块,用于当目标频道的所有订阅账户对应的顺序编号均排在第二顺序编号之后时,在当前存储的信息发布通知中,删除第二顺序编号对应的信息发布通知;
第三删除模块,用于当第二顺序编号对应的信息发布通知的存储时长达到预设时长时,删除第二顺序编号对应的信息发布通知。
在一种可能的实现方式中,装置还包括:获取模块。
获取模块,用于当接收到用于订阅目标频道的订阅消息时,获取订阅消息中携带的第二订阅账户,将目标频道与第二订阅账户,对应的添加到预先存储的频道与订阅账户的对应关系中。
综上所述,本申请实施例提供的装置,服务器在接收到目标频道的信息发布通知后,如果订阅目标频道的订阅账户中存在离线状态的第一订阅账户,则存储该信息发布通知,并当第一订阅账户为在线状态时,将该信息发布通知发送给第一订阅账户;由于服务器会对未能被所有订阅目标频道的订阅账户接收到的信息发布通知进行存储,并当未接收到该信息发布通知的订阅账户为在线状态时,将信息发布通知发送给该订阅账户,因此解决了现有技术中由于Redis服务器未对消息提供持久化存储,因此消息被发送后,如果没有订阅账户接收,消息则会丢失,导致一旦订阅账户未接收到该消息,则永远无法接收到该消息的问题,达到了在第一订阅账户处于在线状态时,向该第一订阅账户发送目标频道的信息发布通知,避免第一订阅账户永远无法接收到在该第一订阅账户处于离线状态时,发布账户发布的目标频道的信息发布通知的效果。
需要说明的是:上述实施例中提供的消息分发装置在分发消息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的消息分发装置与消息分发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请一示例性实施例提供了一种服务器,能够实现本申请提供的消息分发方法,该服务器包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
接收对应目标频道的信息发布通知;
根据预先存储的频道与订阅账户的对应关系,确定目标频道对应的订阅账户,获取目标频道对应的订阅账户的登录状态;
如果目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储信息发布通知;
当检测到第一订阅账户为在线状态时,向第一订阅账户的登录终端发送信息发布通知。
图5是根据另一示例性实施例示出的一种用于消息分发装置的框图。例如,装置500可以被提供为一网络侧设备。参照图5,装置500包括处理组件502,其进一步包括一个或多个处理器,以及由存储器504所代表的存储器资源,用于存储可由处理组件502的执行的指令,例如应用程序。存储器504中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件502被配置为执行指令,以执行上述消息分发方法。
装置500还可以包括一个电源组件506被配置为执行装置500的电源管理,一个有线或无线网络接口508被配置为将装置500连接到网络,和一个输入输出(I/O)接口510。装置500可以操作基于存储在存储器504的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员可以理解,图5中示出的结构并不构成对服务器500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种消息分发方法,其特征在于,所述方法包括:
接收对应目标频道的信息发布通知;
根据预先存储的频道与订阅账户的对应关系,确定所述目标频道对应的订阅账户,获取所述目标频道对应的订阅账户的登录状态;
如果所述目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储所述信息发布通知;
当检测到所述第一订阅账户为在线状态时,向所述第一订阅账户的登录终端发送所述信息发布通知;
所述接收对应目标频道的信息发布通知之后,所述方法还包括:
根据不同的信息发布通知的接收时间先后顺序,按照递增顺序为当前接收的信息发布通知分配顺序编号;
所述当检测到所述第一订阅账户为在线状态时,向所述第一订阅账户的登录终端发送所述信息发布通知,包括:
当检测到所述第一订阅账户为在线状态时,确定所述第一订阅账户对应的第一顺序编号,获取顺序编号排在所述第一顺序编号之后的信息发布通知,将所述顺序编号排在所述第一顺序编号之后的信息发布通知发送给所述第一订阅账户的登录终端;其中,所述第一订阅账户对应的第一顺序编号为所述第一订阅账户最近一次下线时,服务器所存储的信息发布通知对应的顺序编号中,排序最后的顺序编号。
2.根据权利要求1所述的方法,其特征在于,在所述向所述第一订阅账户的登录终端发送所述信息发布通知之后,所述方法还包括:
删除所述第一订阅账户对应的第一顺序编号。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目标频道的所有订阅账户对应的顺序编号均排在第二顺序编号之后时,在所述当前存储的信息发布通知中,删除所述第二顺序编号对应的信息发布通知;和/或,
当所述第二顺序编号对应的信息发布通知的存储时长达到预设时长时,删除所述第二顺序编号对应的信息发布通知。
4.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
当接收到用于订阅所述目标频道的订阅消息时,获取所述订阅消息中携带的第二订阅账户,将所述目标频道与所述第二订阅账户,对应的添加到所述预先存储的频道与订阅账户的对应关系中。
5.一种消息分发装置,其特征在于,所述装置包括:
接收模块,用于接收对应目标频道的信息发布通知;
第一确定模块,用于根据预先存储的频道与订阅账户的对应关系,确定所述目标频道对应的订阅账户,获取所述目标频道对应的订阅账户的登录状态;
存储模块,用于如果所述目标频道对应的订阅账户中存在离线状态的第一订阅账户,则存储所述信息发布通知;
发送模块,用于当检测到所述第一订阅账户为在线状态时,向所述第一订阅账户的登录终端发送所述信息发布通知;
所述装置还包括分配模块,所述分配模块用于根据不同的信息发布通知的接收时间先后顺序,按照递增顺序为当前接收的信息发布通知分配顺序编号;
所述发送模块,还用于当检测到所述第一订阅账户为在线状态时,确定所述第一订阅账户对应的第一顺序编号,获取顺序编号排在所述第一顺序编号之后的信息发布通知,将所述顺序编号排在所述第一顺序编号之后的信息发布通知发送给所述第一订阅账户的登录终端;其中,所述第一订阅账户对应的第一顺序编号为所述第一订阅账户最近一次下线时,服务器所存储的信息发布通知对应的顺序编号中,排序最后的顺序编号。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第一删除模块,用于在所述向所述第一订阅账户的登录终端发送所述信息发布通知之后,删除所述第一订阅账户对应的第一顺序编号。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第二删除模块,用于当所述目标频道的所有订阅账户对应的顺序编号均排在第二顺序编号之后时,在所述当前存储的信息发布通知中,删除所述第二顺序编号对应的信息发布通知;
第三删除模块,用于当所述第二顺序编号对应的信息发布通知的存储时长达到预设时长时,删除所述第二顺序编号对应的信息发布通知。
8.根据权利要求5-7任一所述的装置,其特征在于,所述装置还包括:
获取模块,用于当接收到用于订阅所述目标频道的订阅消息时,获取所述订阅消息中携带的第二订阅账户,将所述目标频道与所述第二订阅账户,对应的添加到所述预先存储的频道与订阅账户的对应关系中。
9.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1-4任一所述的消息分发方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1-4任一所述的消息分发方法。
CN201810159418.5A 2018-02-26 2018-02-26 消息分发方法、装置、服务器及存储介质 Active CN108390933B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810159418.5A CN108390933B (zh) 2018-02-26 2018-02-26 消息分发方法、装置、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810159418.5A CN108390933B (zh) 2018-02-26 2018-02-26 消息分发方法、装置、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN108390933A CN108390933A (zh) 2018-08-10
CN108390933B true CN108390933B (zh) 2021-03-09

Family

ID=63069237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810159418.5A Active CN108390933B (zh) 2018-02-26 2018-02-26 消息分发方法、装置、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN108390933B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032534B (zh) * 2018-08-30 2022-09-13 阿波罗智能技术(北京)有限公司 一种无人车消息传输方法、装置、设备和介质
CN109756417B (zh) * 2019-01-04 2022-08-30 平安科技(深圳)有限公司 离线消息分发方法、服务器及存储介质
CN113133027B (zh) * 2019-12-30 2023-01-20 Tcl新技术(惠州)有限公司 一种通信方法、服务器、终端及通信系统
CN111885399B (zh) * 2020-06-29 2023-06-13 腾讯科技(武汉)有限公司 内容分发方法、装置、电子设备以及存储介质
CN113014672B (zh) * 2021-04-07 2022-05-17 广州趣丸网络科技有限公司 一种消息推送方法、装置、电子设备及存储介质
CN114938392B (zh) * 2022-06-23 2023-06-30 成都质数斯达克科技有限公司 一种分布式订阅发布系统及方法
CN116760891B (zh) * 2023-08-21 2023-11-03 西安华创马科智能控制系统有限公司 一种用于井下多设备的数据处理方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103220367A (zh) * 2013-05-13 2013-07-24 深圳市中博科创信息技术有限公司 数据复制方法及数据存储系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8396747B2 (en) * 2005-10-07 2013-03-12 Kemesa Inc. Identity theft and fraud protection system and method
CN101867914A (zh) * 2010-06-10 2010-10-20 中兴通讯股份有限公司 动态内容分发的同步方法、系统、服务器及客户端
CN107592351B (zh) * 2017-09-06 2021-01-12 北京锐安科技有限公司 一种基于Redis的多用户发布订阅方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103220367A (zh) * 2013-05-13 2013-07-24 深圳市中博科创信息技术有限公司 数据复制方法及数据存储系统

Also Published As

Publication number Publication date
CN108390933A (zh) 2018-08-10

Similar Documents

Publication Publication Date Title
CN108390933B (zh) 消息分发方法、装置、服务器及存储介质
CN110659121B (zh) 任务数据获取方法及装置、任务配置方法及装置和服务器
CN111970315A (zh) 推送消息的方法、装置及系统
KR101871383B1 (ko) 계층적 데이터 구조의 노드 상에서 재귀적 이벤트 리스너를 사용하기 위한 방법 및 시스템
CN107147945B (zh) 多媒体资源播放系统、方法及装置
CN106095789B (zh) 一种消息订阅管理装置及方法
CN108011931B (zh) Web数据采集方法和Web数据采集系统
CN111770002B (zh) 测试数据转发控制方法、装置、可读存储介质和电子设备
CN110390739B (zh) 一种车辆数据处理方法及车辆数据处理系统
CN112506870A (zh) 数据仓库增量更新方法、装置及计算机设备
CN111010318A (zh) 发现物联网终端设备失联的方法、系统和设备影子服务器
CN113347269A (zh) 一种工业系统的数据更新方法、电子设备和存储介质
CN111935242A (zh) 数据传输方法、装置、服务器以及存储介质
US8117181B2 (en) System for notification of group membership changes in directory service
CN111193789A (zh) 订阅信息推送方法、装置、计算机设备和可读存储介质
CN112395337B (zh) 一种数据导出方法和装置
CN112351082A (zh) Http请求报文的限流方法及装置
CN111274032A (zh) 任务处理系统及方法、存储介质
CN110768855B (zh) 链路化性能测试的方法和装置
CN114051052A (zh) 行为事件配置方法、系统、装置、服务器及存储介质
CN113238919A (zh) 一种用户访问数的统计方法、装置及系统
CN108471375B (zh) 一种消息处理方法、装置及终端
CN110990213A (zh) 一种集群环境用户日志实时监控方法及装置
CN113127923A (zh) 管理权限的方法和装置
CN103856359A (zh) 获取信息的方法和系统

Legal Events

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

Effective date of registration: 20210112

Address after: 511442 3108, 79 Wanbo 2nd Road, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant after: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 511446 28th floor, block B1, Wanda Plaza, Nancun Town, Panyu District, Guangzhou City, Guangdong Province

Applicant before: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20180810

Assignee: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd.

Assignor: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd.

Contract record no.: X2021440000052

Denomination of invention: Message distribution method, device, server and storage medium

License type: Common License

Record date: 20210222