[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
[0027] 为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
[0028] 图1是本发明一种订阅远程消息的方法的步骤流程示意图。如图1所示,根据本发明的一个实施例,一种订阅远程消息的方法,包括:
[0029] 步骤S10获取订阅终端发起的连接请求;
[0030] 步骤S20响应于该连接请求,建立连接会话;
[0031] 步骤S30根据已建立的连接会话,生成会话账号,并保存于订阅终端上;
[0032] 步骤S40获取订阅终端通过会话账号发送的订阅参考信息,优选的,该订阅参考信息是指:远程消息名称或远程消息中所含有的关键字;
[0033] 步骤S60根据已发送的订阅参考信息,向该会话账号所在的订阅终端发送与所述订阅参考信息相符合的远程消息。
[0034] 图2是本发明另一种订阅远程消息的方法的步骤流程示意图。如图2所示,根据本发明的另一个实施例,一种订阅远程消息的方法,包括:
[0035] 步骤S10获取订阅终端发起的连接请求;
[0036] 步骤S20响应于该连接请求,建立连接会话;
[0037] 步骤S30根据已建立的连接会话,生成会话账号,并保存于订阅终端上;
[0038] 步骤S40获取订阅终端通过会话账号发送的订阅参考信息,优选的,该订阅参考信息是指:远程消息名称或远程消息中所含有的关键字;
[0039] 步骤S41获取订阅终端发送的会话账号,并保存该会话账号于发布终端上;
[0040] 步骤S60根据已发送的订阅参考信息,向该会话账号所在的订阅终端发送与所述订阅参考信息相符合的远程消息。
[0041] 图3是本发明再一种订阅远程消息的方法的步骤流程示意图。如图3所示,根据本发明的再一个实施例,一种订阅远程消息的方法,包括:
[0042] 步骤S10获取订阅终端发起的连接请求;
[0043] 步骤S20响应于该连接请求,建立连接会话;
[0044] 步骤S30根据已建立的连接会话,生成会话账号,并保存于订阅终端上;
[0045] 步骤S40获取订阅终端通过会话账号发送的订阅参考信息,优选的,该订阅参考信息是指:远程消息名称或远程消息中所含有的关键字;
[0046] 步骤S41获取订阅终端发送的会话账号,并保存该会话账号于发布终端上;
[0047] 步骤S50判断步骤S41是否已获取到会话账号;
[0048] 步骤S51若已获取到会话账号,则判断该会话账号所在的订阅终端是否已发送与预发送的远程消息相符合的订阅参考信息,若获取到的会话账号为多个,则逐一判断每个会话账号所在的订阅终端是否已发送与预发送的远程消息相符合的订阅参考信息;否则,跳转至步骤S10;
[0049] 步骤S61若该会话账号所在的订阅终端已发送与预发送的远程消息相符合的订阅参考信息,则向该会话账号所在的订阅终端发送该预发送的远程消息,若有多个会话账号所在的订阅终端已发送与预发送的远程消息相符合的订阅参考信息,则向每个会话账号所在的订阅终端发送该预发送的远程消息;
[0050] 步骤S52若该会话账号所在的订阅终端未发送与预发送的远程消息相符合的订阅参考信息,放弃发送该预发送的远程消息后,跳转至步骤S50。
[0051] 图4是本发明又一种订阅远程消息的方法的步骤流程示意图。如图4所示,根据本发明的又一个实施例,一种订阅远程消息的方法,包括:
[0052] 步骤S01根据新远程消息的属性,发布该新远程消息至相应的消息主题中;
[0053] 步骤S02根据已发布的新远程消息,添加相应的订阅参考信息至该新远程消息中;
[0054] 步骤S10获取订阅终端发起的连接请求;
[0055] 步骤S20响应于该连接请求,建立连接会话;
[0056] 步骤S30根据已建立的连接会话,生成会话账号,并保存于订阅终端上;
[0057] 步骤S40获取订阅终端通过会话账号发送的订阅参考信息,优选的,该订阅参考信息是指:远程消息名称或远程消息中所含有的关键字;
[0058] 步骤S41获取订阅终端发送的会话账号,并保存该会话账号于发布终端上;
[0059] 步骤S50判断步骤S41是否已获取到会话账号;
[0060] 步骤S51若已获取到会话账号,则判断该会话账号所在的订阅终端是否已发送与预发送的远程消息相符合的订阅参考信息,若获取到的会话账号为多个,则逐一判断每个会话账号所在的订阅终端是否已发送与预发送的远程消息相符合的订阅参考信息;否则,跳转至步骤S10;
[0061] 步骤S61若该会话账号所在的订阅终端已发送与预发送的远程消息相符合的订阅参考信息,则向该会话账号所在的订阅终端发送该预发送的远程消息,若有多个会话账号所在的订阅终端已发送与预发送的远程消息相符合的订阅参考信息,则向每个会话账号所在的订阅终端发送该预发送的远程消息;
[0062] 步骤S52若该会话账号所在的订阅终端未发送与预发送的远程消息相符合的订阅参考信息,放弃发送该预发送的远程消息后,跳转至步骤S50。
[0063] 图5是本发明一种订阅远程消息的系统的组成结构示意图。如图5所示,根据本发明的一个实施例,一种订阅远程消息的系统,包括:
[0064] 请求获取模块10,该请求获取模块获取订阅终端发起的连接请求;
[0065] 会话建立模块20,该会话建立模块20响应于所述请求获取模块10输出的连接请求,建立连接会话;
[0066] 账号生成模块30,该账号生成模块30根据所述会话建立模块20已建立的连接会话,生成会话账号,并保存于订阅终端上;
[0067] 信息获取模块40,该信息获取模块40获取订阅终端通过会话账号发送的订阅参考信息;优选的,所述信息获取模块40获取订阅终端通过会话账号发送的订阅参考信息是指:远程消息名称或远程消息中所含有的关键字;
[0068] 消息发送模块60,该消息发送模块60接收所述信息获取模块40输出的订阅参考信息,向该会话账号所在的订阅终端发送与所述订阅参考信息相符合的远程消息。
[0069] 根据本发明的另一个实施例,一种订阅远程消息的系统,包括:
[0070] 请求获取模块10,该请求获取模块订阅终端发起的连接请求;
[0071] 会话建立模块20,该会话建立模块20响应于所述请求获取模块10输出的连接请求,建立连接会话;
[0072] 账号生成模块30,该账号生成模块30根据所述会话建立模块20已建立的连接会话,生成会话账号,并保存于订阅终端上;
[0073] 信息获取模块40,该信息获取模块40获取订阅终端通过会话账号发送的订阅参考信息;优选的,所述信息获取模块40获取订阅终端通过会话账号发送的订阅参考信息是指:远程消息名称或远程消息中所含有的关键字;
[0074] 优选的,账号获取模块41,该账号获取模块41获取订阅终端发送的会话账号,并保存该会话账号于发布终端上;
[0075] 账号判断模块50,该账号判断模块50接收所述账号获取模块41输出的信息,判断是否已获取到会话账号;
[0076] 信息判断模块51,该信息判断模块51接收所述账号判断模块50输出的已获取到会话账号的判断结果,判断该会话账号所在的订阅终端是否已发送与预发送的远程消息相符合的订阅参考信息;
[0077] 所述请求获取模块10收所述账号判断模块50输出的未获取到会话账号的判断结果,所述请求获取模块订阅终端发起的连接请求;
[0078] 所述消息发送模块60接收所述信息判断模块51输出的该会话账号所在的订阅终端已发送与预发送的远程消息相符合的订阅参考信息的判断结果,向该会话账号所在的订阅终端发送该预发送的远程消息;
[0079] 所述账号判断模块50接收所述信息判断模块51输出的该会话账号所在的订阅终端未发送与预发送的远程消息相符合的订阅参考信息的判断结果,该账号判断模块50接收所述账号获取模块41输出的信息,判断是否已获取到会话账号。
[0080] 图6是本发明再一种订阅远程消息的系统的组成结构示意图。如图6所示,根据本发明的再一个实施例,一种订阅远程消息的系统,包括:
[0081] 请求获取模块10,该请求获取模块订阅终端发起的连接请求;
[0082] 会话建立模块20,该会话建立模块20响应于所述请求获取模块10输出的连接请求,建立连接会话;
[0083] 账号生成模块30,该账号生成模块30根据所述会话建立模块20已建立的连接会话,生成会话账号,并保存于订阅终端上;
[0084] 信息获取模块40,该信息获取模块40获取订阅终端通过会话账号发送的订阅参考信息;优选的,所述信息获取模块40获取订阅终端通过会话账号发送的订阅参考信息是指:远程消息名称或远程消息中所含有的关键字;
[0085] 优选的,账号获取模块41,该账号获取模块41获取订阅终端发送的会话账号,并保存该会话账号于发布者终端上;
[0086] 账号判断模块50,该账号判断模块50接收所述账号获取模块41输出的信息,判断是否已获取到会话账号;
[0087] 信息判断模块51,该信息判断模块51接收所述账号判断模块50输出的已获取到会话账号的判断结果,判断该会话账号所在的订阅终端是否已发送与预发送的远程消息相符合的订阅参考信息;
[0088] 所述请求获取模块10收所述账号判断模块50输出的未获取到会话账号的判断结果,所述请求获取模块订阅终端发起的连接请求;
[0089] 所述消息发送模块60接收所述信息判断模块51输出的该会话账号所在的订阅终端已发送与预发送的远程消息相符合的订阅参考信息的判断结果,向该会话账号所在的订阅终端发送该预发送的远程消息;
[0090] 所述账号判断模块50接收所述信息判断模块51输出的该会话账号所在的订阅终端未发送与预发送的远程消息相符合的订阅参考信息的判断结果,该账号判断模块50接收所述账号获取模块41输出的信息,判断是否已获取到会话账号;
[0091] 消息发布模块70,该消息发布模块70根据新远程消息的属性,发布该新远程消息至相应的消息主题中;
[0092] 信息添加模块80,该信息添加模块80接收所述消息发布模块70已发布的新远程消息,添加相应的订阅参考信息至该新远程消息中;所述信息添加模块80将添加有相应的订阅参考信息的远程消息发送给所述消息发送模块60。
[0093] 图7是本发明又一种订阅远程消息的系统的组成结构示意图。如图7所示,根据本发明的又一个实施例,一种订阅远程消息的系统,包括:
[0094] 消费者系统向生产者系统发起连接请求,生产者系统接收连接请求,双方建立了连接会话,并产生一个会话ID,生产者系统和消费者系统都需要保存该ID;生产者系统和消费者系统内各自设有一个会话连接管理管理,消费者系统和生产者系统之间的会话,会产生一个双方都认可的ID;
[0095] 消费者系统将会话ID和消息名称发送到生产者系统,生产者系统保存上述两个参数;消费者系统向消息服务器订阅指定topic的消息;消费者系统内设一个消息订阅管理,首先向生产者系统发起订阅,成功后向消息服务器订阅;
[0096] 当生产者系统需要向消息服务器发送消息时,生产者系统根据消息名称判断当前发送的消息是否被消费者系统订阅,如果被订阅则向消息服务器发送该消息,如果没有订阅则该消息不发送;生产者系统内设一个消息发送管理,生产者系统根据订阅消息的会话ID和消息名称决定是否发送消息;
[0097] 消费者系统从消息服务器接收到订阅的消息。通过这种方式优化了生产者系统消息发送的机制,在消息没有订阅的时候,生产者系统是不会发送消息的。从而提高了系统消息处理能力。
[0098] 本发明通过在消费者系统和生产者系统之间建立一个会话连接,产生一个会话ID,然后向生产者系统发送需要订阅的消息名称和当前会话ID,同时消费者系统连接消息服务器,当生产者系统需要发送消息时首先判断是否存在会话ID,发送的消息是否被订阅,如果上述两个条件满足要求,则向消息服务器上指定的topic发送消息,消费者系统则接收的永远是需要的消息,无关的消息是不会接收到的。
[0099] 本发明提出一种基于会话ID与消息名称结合的消息订阅方案,通过该方案,生产者系统会根据与消费者系统连接的会话ID和订阅消息的消息名称来决定是否发送消息,如果消费者系统没有连接生产者系统或者消费者系统没有订阅生产者系统的消息,生产者系统是不会发送消息的,通过这种方式来提高生产者系统和消费者系统的消息处理能力,降低网络流量,提高系统效率。
[0100] 应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。