服务端与客户端之间控制类消息的传输方法及系统转让专利

申请号 : CN201710207851.7

文献号 : CN107196904B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 施幸东周万斌

申请人 : 北京奇艺世纪科技有限公司

摘要 :

本发明实施例提供了服务端与客户端之间控制类消息的传输方法及系统,应用于通信技术领域,该方法包括:获取待发送的控制类消息,确定控制类消息对应的至少一类客户端;获取应用信息表,在应用信息表中查找到控制类消息对应的客户端的信息,其中,应用信息表标识待控制的客户端的信息;根据查找到的控制类消息对应的客户端的信息,向查找到的控制类消息对应的客户端发送控制类消息。通过本发明的服务端与客户端之间控制类消息的传输方法,实现了客户端及时获取控制类消息。

权利要求 :

1.一种服务端与客户端之间控制类消息的传输方法,其特征在于,应用于基于SIP协议会话初始化协议的服务端,包括:获取待发送的控制类消息,确定所述控制类消息对应的至少一类客户端;

获取应用信息表,在所述应用信息表中查找到所述控制类消息对应的客户端的信息,其中,所述应用信息表标识待控制的客户端的信息;

步骤A,将查找到的所述控制类消息对应的客户端加入到目标对象集合中,其中,所述目标对象集合用于记录所述控制类消息对应的客户端;

步骤B,根据查找到的所述控制类消息对应的客户端的信息,分别向所述目标对象集合中的每个客户端发送所述控制类消息;

步骤C,接收由所述目标对象集合中的客户端根据所述控制类消息发送的反馈信息,其中,所述反馈信息标识发送所述反馈信息的客户端已经接收到所述控制类消息;

步骤D,将接收到的反馈信息所对应的客户端从所述目标对象集合中清除;

步骤E,若所述目标对象集合不为空,返回所述步骤B执行,直至所述目标对象集合为空,停止发送所述控制类消息;若所述目标对象集合为空,停止发送所述控制类消息。

2.根据权利要求1所述的方法,其特征在于,在所述获取待发送的控制类消息,确定所述控制类消息对应的至少一类客户端之前,所述方法还包括:接收由所述客户端发送的注册包,其中,所述注册包包括:所述客户端所在的地址、所述客户端所在的端口及所述客户端的标识;

根据所述注册包,在所述应用信息表中写入所述待控制的客户端的信息。

3.根据权利要求1所述的方法,其特征在于,在所述获取待发送的控制类消息,确定所述控制类消息对应的至少一类客户端之前,所述方法还包括:接收由所述客户端发送的心跳包,其中,所述心跳包标识所述客户端的运行情况;

根据所述心跳包中所述客户端的运行情况,维护所述应用信息表。

4.一种服务端与客户端之间控制类消息的传输系统,其特征在于,应用于基于SIP协议的服务端,包括:控制类消息获取模块,用于获取待发送的控制类消息,确定所述控制类消息对应的至少一类客户端;

信息表获取模块,用于获取应用信息表,在所述应用信息表中查找到所述控制类消息对应的客户端的信息,其中,所述应用信息表标识待控制的客户端的信息;

第一发送模块,所述第一发送模块,包括:

目标对象集合确定子模块,用于将查找到的所述控制类消息对应的客户端加入到目标对象集合中,其中,所述目标对象集合用于记录所述控制类消息对应的客户端;

控制类消息发送子模块,用于根据查找到的所述控制类消息对应的客户端的信息,分别向所述目标对象集合中的每个客户端发送所述控制类消息;

反馈信息接收子模块,用于接收由所述目标对象集合中的客户端根据所述控制类消息发送的反馈信息,其中,所述反馈信息标识发送所述反馈信息的客户端已经接收到所述控制类消息;

目标对象更新子模块,用于将接收到的反馈信息所对应的客户端从所述目标对象集合中清除;

判定模块子模块,用于若所述目标对象集合不为空,返回所述控制类消息发送子模块执行,直至所述目标对象集合为空,停止发送所述控制类消息;若所述目标对象集合为空,停止发送所述控制类消息。

5.根据权利要求4所述的系统,其特征在于,所述系统还包括:第二接收模块,用于接收由所述客户端发送的注册包,其中,所述注册包包括:所述客户端所在的地址、所述客户端所在的端口及所述客户端的标识;

第一维护模块,用于根据所述注册包,在所述应用信息表中写入所述待控制的客户端的信息。

6.根据权利要求4所述的系统,其特征在于,所述系统还包括:第三接收模块,用于接收由所述客户端发送的心跳包,其中,所述心跳包标识所述客户端的运行情况;

第二维护模块,用于根据所述心跳包中所述客户端的运行情况,维护所述应用信息表。

说明书 :

服务端与客户端之间控制类消息的传输方法及系统

技术领域

[0001] 本发明涉及通信技术领域,特别是涉及服务端与客户端之间控制类消息的传输方法及系统。

背景技术

[0002] 随着互联网技术的发展,终端中越来越多的应用程序都需要服务端向客户端(应用程序)发送控制类消息,以保证客户端的正常运营,比如更新用户信息、刷新页面及同步服务端数据。
[0003] 现有技术中,基于SIP协议(Session Initiation Protocol,会话初始化协议)的服务端向客户端发送控制类消息,是通过客户端主动发送请求来实现的。当符合设定条件时,客户端主动向服务端发送请求,服务端根据客户端发送的请求,向客户端发送控制类消息,例如,首次启动APP客户端时客户端主动发送一次请求,或者首次进入某个页面时客户端主动发送一次请求。
[0004] 但是,采用客户端主动向服务端发送请求以获取控制类消息的方法,会导致客户端从同步完一次服务端发送的控制类消息,到下一次客户端主动发送请求之间,无法接收到控制类消息,若在此期间服务端的控制类消息发生变化,客户端无法及时获取控制类消息。

发明内容

[0005] 本发明实施例的目的在于提供一种服务端与客户端之间控制类消息的传输方法及系统,以实现客户端及时获取控制类消息。具体技术方案如下:
[0006] 一种服务端与客户端之间控制类消息的传输方法,应用于基于SIP协议的服务端,包括:
[0007] 获取待发送的控制类消息,确定所述控制类消息对应的至少一类客户端;
[0008] 获取应用信息表,在所述应用信息表中查找到所述控制类消息对应的客户端的信息,其中,所述应用信息表标识待控制的客户端的信息;
[0009] 根据查找到的所述控制类消息对应的客户端的信息,向查找到的所述控制类消息对应的客户端发送所述控制类消息。
[0010] 可选的,在所述获取待发送的控制类消息,确定所述控制类消息对应的至少一类客户端之前,所述方法还包括:
[0011] 接收由所述客户端发送的注册包,其中,所述注册包包括:所述客户端所在的地址、所述客户端所在的端口及所述客户端的标识;
[0012] 根据所述注册包,在所述应用信息表中写入所述待控制的客户端的信息。
[0013] 可选的,在所述获取待发送的控制类消息,确定所述控制类消息对应的至少一类客户端之前,所述方法还包括:
[0014] 接收由所述客户端发送的心跳包,其中,所述心跳包标识所述客户端的运行情况;
[0015] 根据所述心跳包中所述客户端的运行情况,维护所述应用信息表。
[0016] 可选的,所述根据查找到的所述控制类消息对应的客户端的信息,向查找到的所述控制类消息对应的客户端发送所述控制类消息,包括:
[0017] 步骤A,将查找到的所述控制类消息对应的客户端加入到目标对象集合中,其中,所述目标对象集合用于记录所述控制类消息对应的客户端;
[0018] 步骤B,根据查找到的所述控制类消息对应的客户端的信息,分别向所述目标对象集合中的每个客户端发送所述控制类消息;
[0019] 步骤C,接收由所述目标对象集合中的客户端根据所述控制类消息发送的反馈信息,其中,所述反馈信息标识发送所述反馈信息的客户端已经接收到所述控制类消息;
[0020] 步骤D,将接收到的反馈信息所对应的客户端从所述目标对象集合中清除;
[0021] 步骤E,若所述目标对象集合不为空,返回所述步骤B执行,直至所述目标对象集合为空,停止发送所述控制类消息;若所述目标对象集合为空,停止发送所述控制类消息。
[0022] 一种服务端与客户端之间控制类消息的传输方法,应用于基于SIP协议的客户端,包括:
[0023] 接收由服务端根据应用信息表发送的控制类消息,其中,所述应用信息表标识待控制的客户端的信息。
[0024] 可选的,在所述接收由服务端根据应用信息表发送的控制类消息之前,所述方法还包括:
[0025] 在启动所述待控制的客户端时,向所述服务端发送注册包,以使所述服务端根据所述注册包,在所述应用信息表中标识所述待控制的客户端的信息,其中,所述注册包包括:所述客户端所在的地址、所述客户端所在的端口及所述客户端的标识。
[0026] 可选的,在所述接收由服务端根据应用信息表发送的控制类消息之前,所述方法还包括:
[0027] 向所述服务端发送心跳包,以使所述服务端根据所述心跳包维护所述应用信息表,其中,所述心跳包标识所述客户端的运行情况。
[0028] 一种服务端与客户端之间控制类消息的传输系统,应用于基于SIP协议的服务端,包括:
[0029] 控制类消息获取模块,用于获取待发送的控制类消息,确定所述控制类消息对应的至少一类客户端;
[0030] 信息表获取模块,用于获取应用信息表,在所述应用信息表中查找到所述控制类消息对应的客户端的信息,其中,所述应用信息表标识待控制的客户端的信息;
[0031] 第一发送模块,用于根据查找到的所述控制类消息对应的客户端的信息,向查找到的所述控制类消息对应的客户端发送所述控制类消息。
[0032] 可选的,所述系统还包括:
[0033] 第二接收模块,用于接收由所述客户端发送的注册包,其中,所述注册包包括:所述客户端所在的地址、所述客户端所在的端口及所述客户端的标识;
[0034] 第一维护模块,用于根据所述注册包,在所述应用信息表中写入所述待控制的客户端的信息。
[0035] 可选的,所述系统还包括:
[0036] 第三接收模块,用于接收由所述客户端发送的心跳包,其中,所述心跳包标识所述客户端的运行情况;
[0037] 第二维护模块,用于根据所述心跳包中所述客户端的信息,维护所述应用信息表。
[0038] 可选的,所述第一发送模块,包括:
[0039] 目标对象集合确定子模块,用于将查找到的所述控制类消息对应的客户端加入到目标对象集合中,其中,所述目标对象集合用于记录所述控制类消息对应的客户端;
[0040] 控制类消息发送子模块,用于根据查找到的所述控制类消息对应的客户端的信息,分别向所述目标对象集合中的每个客户端发送所述控制类消息;
[0041] 反馈信息接收子模块,用于接收由所述目标对象集合中的客户端根据所述控制类消息发送的反馈信息,其中,所述反馈信息标识发送所述反馈信息的客户端已经接收到所述控制类消息;
[0042] 目标对象更新子模块,用于将接收到的反馈信息所对应的客户端从所述目标对象集合中清除;
[0043] 判定模块子模块,用于若所述目标对象集合不为空,返回所述控制类消息发送子模块执行,直至所述目标对象集合为空,停止发送所述控制类消息;若所述目标对象集合为空,停止发送所述控制类消息。
[0044] 一种服务端与客户端之间控制类消息的传输系统,应用于基于SIP协议的客户端,包括:
[0045] 第一接收模块,用于接收由服务端根据应用信息表发送的控制类消息,其中,所述应用信息表标识待控制的客户端的信息。
[0046] 可选的,所述系统还包括:
[0047] 第二发送模块,用于在启动所述待控制的客户端时,向所述服务端发送注册包,以使所述服务端根据所述注册包,在所述应用信息表中标识所述待控制的客户端的信息,其中,所述注册包包括:所述客户端所在的地址、所述客户端所在的端口及所述客户端的标识。
[0048] 可选的,所述系统还包括:
[0049] 第三发送模块,用于向所述服务端发送心跳包,以使所述服务端根据所述心跳包维护所述应用信息表,其中,所述心跳包标识所述客户端的运行情况。
[0050] 本发明实施例提供的服务端与客户端之间控制类消息的传输方法及系统,服务端通过查询应用信息表,确定接收控制类消息的客户端,并主动发送控制类消息,以实现客户端及时获取控制类消息。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0051] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052] 图1为本发明实施例的服务端与客户端之间控制类消息的传输方法,应用于服务端的流程示意图;
[0053] 图2为本发明实施例的应用信息表的示意图;
[0054] 图3为本发明实施例的通过查询应用信息表,向客户端发送控制类消息的示意图;
[0055] 图4为本发明实施例的根据注册包,维护应用信息表的示意图;
[0056] 图5为本发明实施例的服务端与客户端之间控制类消息的传输系统,应用于服务端的示意图。

具体实施方式

[0057] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058] 需要说明的是,本发明实施例的服务端与客户端之间控制类消息的传输方法及系统主要应用于基于SIP协议(Session Initiation Protocol,会话初始化协议)的UDP协议(User Datagram Protocol,用户数据报协议)网络中,当然还可以应用到基于SIP协议的TCP协议(Transmission Control Protocol,传输控制协议)网络中。
[0059] 随着互联网技术的发展,很多应用程序(客户端)都有一些控制方面的需求,例如,更新用户信息,刷新页面,及同步服务端数据。现有技术中,基于SIP协议的客户端主动发送请求,基于SIP协议的服务端收到客户端发送的请求后返回控制类消息,例如,首次启动APP(Application,应用程序)时客户端主动发送请求更新一次用户信息,或者首次进入某个页面时客户端主动发送请求从服务端同步一次数据。但是采用客户端主动发送请求的方法,会存在更新不及时的情况,例如,在客户端同步完服务端的数据之后,到下次客户端主动发送请求以完成数据同步之前,若服务端的数据发生了变化,客户端是没有办法及时同步的。
[0060] 因此本发明实施提供了一种基于SIP协议的服务端与客户端之间控制类消息的传输方法,参见图1,图1为本发明实施例的服务端与客户端之间控制类消息的传输方法的流程示意图,包括:
[0061] S101,获取待发送的控制类消息,确定控制类消息对应的至少一类客户端。
[0062] 服务端推送控制类消息,可以向全局网络中的所有APP(Application,应用程序)进行推送,也可以针对某些特定APP(客户端)进行推送。控制类消息中标识了该控制类消息推送的APP,根据控制类消息,确定控制类消息对应的APP的种类,推送方式灵活。
[0063] S102,获取应用信息表,在应用信息表中查找到控制类消息对应的客户端的信息,其中,应用信息表标识待控制的客户端的信息。
[0064] 提前建立的应用信息表中记录了待控制的APP所在的IP地址(Internet Protocol Address,互联网协议地址),应用信息表中还可以包括APP所在的Port(端口)。在实际应用中,会有多个终端使用同一种APP的情况,因此在应用信息表中,一类APP可能会对应多组信息,每组信息标识一个APP的信息。应用信息表的示意图如图2所示,APPID(Identification,身份标识号)1对应IP1Port1(种类APPID1对应所在地址为IP1Port1的一个客户端),APPID2对应IP1Port4,IP2Port2及IP5Port5(种类APPID2对应所在地址为IP1Port4,IP2Port2及IP5Port5的三个客户端)。获取应用信息表,为后续根据应用信息表查找控制类消息对应的客户端的信息提供了前提。
[0065] 应用信息表中记录了待控制的客户端的信息,根据控制类消息对应的客户端的种类,查找该类型的所有客户端的信息。例如,参见图2,在控制类消息对应的客户端的种类为APPID2时,查找应用信息表可得,APPID2对应的客户端的地址为IP1Port4、IP2Port2及IP5Port5,即控制类消息对应的客户端的消息为IP1Port4、IP2Port2及IP5Port5。
[0066] S103,根据查找到的控制类消息对应的客户端的信息,向查找到的控制类消息对应的客户端发送控制类消息。
[0067] 参见图3,在控制类消息对应的客户端为客户端C1:IP1Port4、客户端B1:IP2Port2及客户端D1:IP5Port5时,向客户端B1、客户端C1及客户端D1发送控制类消息。
[0068] 在本发明实施例中,服务端通过查询应用信息表,确定接收控制类消息的客户端,并主动发送控制类消息,能够使客户端及时获取控制类消息。
[0069] 在获取应用信息表之前,首先应该建立应用信息表。应用信息表是根据待控制的应用程序与客户端之间的对应关系提前建立的。
[0070] 可选的,在获取待发送的控制类消息,确定控制类消息对应的至少一类客户端之前,该方法还包括:
[0071] 步骤一,接收由客户端发送的注册包,其中,注册包包括:客户端所在的地址、客户端所在的端口及客户端的标识。
[0072] 终端的APP(客户端)启动时,客户端向服务端发送注册包,服务端接收该注册包。注册包中包含了客户端的标识,客户端的标识用于区分不同的种类的客户端,例如,客户端的标识为客户端的ID。
[0073] 步骤二,根据注册包,在应用信息表中写入待控制的客户端的信息。
[0074] 在应用信息表中,以客户端为依据,分别标识每种客户端对应的客户端的信息。以客户端为依据建立应用信息表,方便根据客户端的种类查找某种客户端对应的所有的客户端的信息,查找效率高。参见图4,客户端A1、客户端B1、客户端C1及客户端D1四个客户端分别向服务端发送注册包A1(IP1,Port1APPID1)、注册包B1(IP2,Port2APPID2)、注册包C1(IP1,Port4APPID2)及注册包D1(IP5,Port5APPID2),服务端根据四个注册包,在应用信息表中建立待控制的客户端的信息,APPID1对应IP1Port1,APPID2对应IP1Port4,IP2Port2及IP5Port5。
[0075] 在本发明实施例中,根据注册包维护应用信息表,可以增加应用信息表的准确性,为后续服务端根据应用信息表,向对应的客户端发送控制类消息提供了技术上的支持,并且本发明实施例中的注册包,相对于现有技术中的请求包,数据量更小,能够节约数据流量。
[0076] 可选的,在接收由客户端发送的注册包之后,该方法还包括:
[0077] 向客户端发送标识注册包已接收的确认信息,其中,该确认消息为ACK消息。
[0078] 服务端接收到注册包之后,会向客户端反馈确认信息,用于使客户端确定注册包已发送成功。该确认信息为ACK(Acknowledgement,确认字符)消息。
[0079] 在本发明实施例中,服务端接收到注册包之后向客户端返回ACK消息,相比于现有技术中服务端接收到请求包之后向客户端返回控制类消息,ACK消息的数据量更小,能够节约数据流量。
[0080] 应用信息表建立之后,还需要进行维护。客户端接收由用户端发送的标识客户端信息的消息,维护应用信息表。
[0081] 可选的,在获取待发送的控制类消息,确定控制类消息对应的至少一类客户端之前,该方法还包括:
[0082] 步骤一,接收由客户端发送的心跳包,其中,心跳包标识客户端的运行情况。
[0083] 在客户端运行的过程中,客户端会根据预设的时间,向服务端发送心跳包。预设的时间为符合本发明实施例的任意时间,例如三分钟。本发明实施例的服务端与客户端之间控制类消息的传输方法主要应用于基于SIP协议的UDP协议(User Datagram Protocol,用户数据报协议)网络中,当然还可以应用到基于SIP协议的TCP协议(Transmission Control Protocol,传输控制协议)网络。若为UDP协议网络,心跳包标识客户端所在的IP、所在的端口及客户端的ID,这是因为在UDP协议网络中客户端所在的端口及客户端所在的IP会发生改变,为了保证应用信息表的准确性,心跳包需要标识此类信息。若为TCP协议网络,心跳包标识客户端仍处于连接当中,如心跳包中标识“tick”以维护连接,心跳包标识“tick”,数据量小,降低了信令负载。
[0084] 步骤二,根据心跳包中客户端的运行情况,维护应用信息表。
[0085] 服务端根据心跳包维护应用信息表。若为UDP协议网络,服务端根据心跳包中的信息,更新应用信息表中的客户端的信息,例如,在应用信息表中标识信息为IP1,Port4,APPID2的客户端,当服务端接收到该客户端的心跳包标识变更为IP3,Port3,APPID2时,将应用信息表中的该客户端的信息更新为IP3,Port3,APPID2。若为TCP协议网络,服务端根据心跳包确定仍处于连接中的应用,若未接收到某客户端的心跳包,则判定该客户端处于离线状态,在后续确定待发送控制消息的客户端时,便忽略该客户端。
[0086] 在本发明实施例中,根据心跳包维护应用信息表,应用信息表中的内容更加准确,后续根据应用信息表查找的客户端的信息也就更加准确,控制信息发送的成功率高。
[0087] 可选的,S104,包括:
[0088] 步骤A,将查找到的控制类消息对应的客户端加入到目标对象集合中,其中,目标对象集合用于记录控制类消息对应的客户端。
[0089] 目标对象集合初始为空集,用于记录发送控制类消息的目标。将查找到的控制类消息对应的客户端加入到目标对象集合中,发送管理更加方便。
[0090] 步骤B,根据查找到的控制类消息对应的客户端的信息,分别向目标对象集合中的每个客户端发送控制类消息。
[0091] 步骤C,接收由目标对象集合中的客户端根据控制类消息发送的反馈信息,其中,反馈信息标识发送反馈信息的客户端已经接收到控制类消息。
[0092] 步骤D,将接收到的反馈信息所对应的客户端从目标对象集合中清除。
[0093] 步骤E,若目标对象集合不为空,返回步骤B执行,直至目标对象集合为空,停止发送控制类消息;若目标对象集合为空,停止发送控制类消息。
[0094] 经过预设时间后,判断目标对象集合是否为空。预设时间为符合本发明实施例的任意时间,根据网络延时进行设定。例如在网络延时为20ms时,可以将预设时间设定为50ms。
[0095] 在本发明实施例中,在控制类消息的传输过程中,服务端采用多次发送的方法完成控制类消息的传输,能够应用于UDP协议的网络,相比于现有技术中将数据包进行缓存,传输速度更快。
[0096] 可选的,为了防止客户端意外掉线后,服务端无限次的向客户端发送控制类消息,本发明实施例中还设置了发送次数阈值,发送次数阈值由运营商自行设定(例如3次或更多,4次或更多,或5次或更多)。当向某个客户端发送控制类消息的次数达到发送次数阈值时,即使未收到该客户端发送的反馈消息,服务端也会停止向该客户端发该送控制类消息。
[0097] 一种服务端与客户端之间控制类消息的传输方法,应用于基于SIP协议的客户端,包括:
[0098] 接收由服务端根据应用信息表发送的控制类消息,其中,应用信息表标识待控制的客户端的信息。
[0099] 当服务端获取控制类信息后,直接查询应用信息表,查找到该控制类消息对应的客户端,并向该控制类消息对应的客户端发送控制类信息。客户端接收由服务端发送的控制类消息,无需发送请求包,相比于客户端主动发送请求包,节约了客户端的数据流量。
[0100] 在本发明实施例中,客户端接收由服务端发送的控制类消息,服务端主动发送控制类消息,控制类消息的传输更加及时。且相比于现有技术中客户端主动发送请求包,节约了数据流量。
[0101] 应用信息表是根据待控制的客户端的种类与每个客户端的信息提前建立的。客户端向服务端发送标识客户端信息的消息,以使服务端建立应用信息表。
[0102] 可选的,在接收由服务端根据应用信息表发送的控制类消息之前,该方法还包括:
[0103] 在启动待控制的客户端时,向服务端发送注册包,以使服务端根据注册包,在应用信息表中标识待控制的客户端的信息,其中,注册包包括:客户端所在的地址、客户端所在的端口及客户端的标识。
[0104] 终端的客户端启动时,客户端向服务端发送注册包。例如,某个客户端启动时,向服务端发送注册包(标识IP1,Port1,APPID1),服务端接收到该注册包后,在应用信息表中将注册包的信息添加到对应类型的客户端中,即在种类APPID1中添加IP1Port1。
[0105] 在本发明实施例中,客户端在启动时发送注册包,以使服务端根据注册包维护应用信息表,可以增加应用信息表的准确性,为后续服务端根据应用信息表,向对应的客户端发送控制类消息提供了技术上的支持,并且本发明实施例中的注册包,现对于现有技术中的请求包,数据量更小,能够节约数据流量。
[0106] 可选的,在接收由服务端根据应用信息表发送的控制类消息之前,该方法还包括:
[0107] 向服务端发送心跳包,以使服务端根据心跳包维护应用信息表,其中,心跳包标识客户端的运行情况。
[0108] 在客户端运行的过程中,客户端会根据预设的时间,向服务端发送心跳包。该预设的时间,根据网络连接类型进行设定,例如在WIFI(Wireless Fidelity,无线保真)网络中,设定为固定的三分钟。若采用UDP协议,心跳包标识客户端所处的IP、端口及客户端的ID,这是因为在UDP协议中,客户端发送UDP信息包(包括心跳包和注册包)的IP及端口会经常发生变化,若不相应的更新应用信息表中的客户端的信息,会导致控制信息发送失败。若为TCP协议,心跳包可仅用于维护连接,标识客户端仍处于连接当中,如发送内容为“tick”的心跳包。
[0109] 在本发明实施例中,客户端向服务端发送心跳包,以使服务端根据心跳包维护应用信息表,应用信息表中的内容更加准确,后续根据应用信息表查找的目标对象也就更加准确,控制信息发送的成功率高。
[0110] 参见图5,图5为本发明实施例的服务端与客户端之间控制类消息的传输系统,应用于基于SIP协议的服务端的示意图,包括:
[0111] 控制类消息获取模块501,用于获取待发送的控制类消息,确定控制类消息对应的至少一类客户端。
[0112] 信息表获取模块502,用于获取应用信息表,在应用信息表中查找到控制类消息对应的客户端的信息,其中,应用信息表标识待控制的客户端的信息。
[0113] 第一发送模块503,用于根据查找到的控制类消息对应的客户端的信息,向查找到的控制类消息对应的客户端发送控制类消息。
[0114] 在本发明实施例中,服务端通过查询应用信息表,确定接收控制类消息的客户端的信息,并主动发送控制类消息,能够使客户端及时获取控制类消息。
[0115] 需要说明的是,本发明实施例中的系统是应用上述服务端与客户端之间控制类消息的传输方法的系统,则上述服务端与客户端之间控制类消息的传输方法的的实施例均适用于该系统,且均能达到相同或相似的有益效果。
[0116] 可选的,本发明实施例的服务端与客户端之间控制类消息的传输系统还包括:
[0117] 第二接收模块,用于接收由客户端发送的注册包,其中,注册包包括:客户端所在的地址、客户端所在的端口及客户端的标识。
[0118] 第一维护模块,用于根据注册包,在应用信息表中写入待控制的客户端的信息。
[0119] 在本发明实施例中,根据注册包维护应用信息表,可以增加应用信息表的准确性,为后续服务端根据应用信息表,向对应的客户端发送控制类消息提供了技术上的支持,并且本发明实施例中的注册包,现对于现有技术中的请求包,数据量更小,能够节约数据流量。
[0120] 可选的,本发明实施例的服务端与客户端之间控制类消息的传输系统还包括:
[0121] 第三接收模块,用于接收由客户端发送的心跳包,其中,心跳包标识客户端的运行情况。
[0122] 第二维护模块,用于根据心跳包中客户端的运行情况,维护应用信息表。
[0123] 在本发明实施例中,根据心跳包维护应用信息表,应用信息表中的内容更加准确,后续根据应用信息表查找的客户端的信息也就更加准确,控制信息发送的成功率高。
[0124] 可选的,第一发送模块,包括:
[0125] 目标对象集合确定子模块,用于将查找到的控制类消息对应的至少一个客户端加入到目标对象集合中,其中,目标对象集合用于记录控制类消息对应的客户端。
[0126] 控制类消息发送子模块,用于根据查找到的控制类消息对应的客户端的信息,分别向目标对象集合中的每个客户端发送控制类消息。
[0127] 反馈信息接收子模块,用于接收由目标对象集合中的客户端根据控制类消息发送的反馈信息,其中,反馈信息标识发送反馈信息的客户端已经接收到控制类消息。
[0128] 目标对象更新子模块,用于将接收到的反馈信息所对应的客户端从目标对象集合中清除。
[0129] 判定模块子模块,用于若目标对象集合不为空,返回控制类消息发送子模块执行,直至目标对象集合为空,停止发送控制类消息;若目标对象集合为空,停止发送控制类消息。
[0130] 在本发明实施例中,在控制类消息的传输过程中,服务端采用多次发送的方法完成控制类消息的传输,能够应用于UDP协议的网络,相比于现有技术中将数据包进行缓存,传输速度更快。
[0131] 一种服务端与客户端之间控制类消息的传输系统,应用于基于SIP协议的客户端,包括:
[0132] 第一接收模块,用于接收由服务端根据应用信息表发送的控制类消息,其中,应用信息表标识待控制的客户端的信息。
[0133] 在本发明实施例中,客户端接收由服务端发送的控制类消息,服务端主动发送控制类消息,控制类消息的传输更加及时。且相比于现有技术中客户端主动发送请求包,节约了数据流量。
[0134] 可选的,本发明实施例的服务端与客户端之间控制类消息的传输系统还包括:
[0135] 第二发送模块,用于在启动待控制的客户端时,向服务端发送注册包,以使服务端根据注册包,在应用信息表中标识待控制的客户端的信息,其中,注册包包括:客户端所在的地址、客户端所在的端口及客户端的标识。
[0136] 在本发明实施例中,客户端在启动时发送注册包,以使服务端根据注册包维护应用信息表,可以增加应用信息表的准确性,为后续服务端根据应用信息表,向对应的客户端发送控制类消息提供了技术上的支持,并且本发明实施例中的注册包,现对于现有技术中的请求包,数据量更小,能够节约数据流量。
[0137] 可选的,本发明实施例的服务端与客户端之间控制类消息的传输系统还包括:
[0138] 第三发送模块,用于向服务端发送心跳包,以使服务端根据心跳包维护应用信息表,其中,心跳包标识客户端的运行情况。
[0139] 在本发明实施例中,客户端向服务端发送心跳包,以使服务端根据心跳包维护应用信息表,应用信息表中的内容更加准确,后续根据应用信息表查找的目标对象也就更加准确,控制信息发送的成功率高。
[0140] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0141] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0142] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。