一种数据交互的方法及服务器技术

技术编号:25406617 阅读:18 留言:0更新日期:2020-08-25 23:09
本申请适用于数据交互领域,提供了一种数据交互的方法及服务器,该方法包括:预配置连接池的属性参数,基于所述属性参数建立所述连接池;所述属性参数包括最小连接数以及最大连接数;实时监测所述连接池内websocket长连接的连接总数;若检测到关于所述websocket长连接的创建指令且所述连接总数小于所述最大连接数,则创建新的websocket长连接,以响应所述创建指令;若检测到关于所述websocket长连接的释放指令且所述连接总数大于所述最小连接数,则释放所述释放指令对应的所述websocket长连接,以响应所述释放指令。本申请提供的方法通过复用连接池内的连接来建立websocket长连接以进行数据交互,在响应建立连接的请求时既能满足建立连接实现数据交互的需求,又能节省服务器资源。

【技术实现步骤摘要】
一种数据交互的方法及服务器
本申请属于数据交互领域,尤其涉及一种数据交互的方法及服务器。
技术介绍
在语音合成服务中,需要在语音接入系统(客户端)和语音合成系统(服务器的服务端)之间创建连接以实现数据交互,语音合成系统在接收到语音接入系统发送的语音数据时需要进行语音合成操作,再返回语音合成的结果给客户端。目前普遍的做法是基于websocket协议建立长连接,随用随建,用完即弃。这种情况下,如果短时间内客户端并发建立连接的需求量过大,服务器因为资源不足以在短时间内创建大量新的连接,会造成客户端部分连接建立失败。进一步的,服务器需要分配资源对正常使用的长连接传输的交互数据进行语音合成服务,若在该情况下划分部分资源进行长连接创建,则容易造成服务器宕机,从而进一步提高了长连接建立的耗时以及降低了创建的成功率,影响客户端服务调用。因此,需要寻找一种数据交互方法,在响应建立连接的请求时,合理分配服务器资源,兼顾建立连接与语音合成的效率,提高整个语音合成服务的性能。
技术实现思路
本申请实施例提供了一种数据交互的方法及服务器,通过复用连接池内的连接来建立websocket长连接以进行数据交互,在响应建立连接的请求时减少需要创建的长连接以节省创建长连接所占用的资源,既能满足建立连接实现数据交互的需求,又能节省服务器资源以保证语音合成的效率,提高整个语音合成服务的性能。第一方面,本申请实施例提供了一种方法,包括:预配置连接池的属性参数,基于所述属性参数建立所述连接池;所述属性参数包括最小连接数以及最大连接数;所述连接池用于提供可复用的websocket长连接;所述websocket长连接用于接收通信对端反馈的交互数据,以基于交互数据进行语音合成;实时监测所述连接池内websocket长连接的连接总数;若检测到关于所述websocket长连接的创建指令且所述连接总数小于所述最大连接数,则创建新的websocket长连接,以响应所述创建指令;若检测到关于所述websocket长连接的释放指令且所述连接总数大于所述最小连接数,则释放所述释放指令对应的所述websocket长连接,以响应所述释放指令。在第一方面的一种可能的实现方式中,在所述连接池中建立与所述最小连接数对应数量的多个状态标识为空闲的长连接,并将所述多个状态标识为空闲的长连接存储于空闲队列内;所述状态标识为空闲的长连接为处于待激活状态的所述websocket长连接;在所述连接池中建立使用队列用于存储状态标识为使用的长连接;所述状态标识为使用的长连接为处于使用状态的所述websocket长连接。示例性的,所述连接池内的空闲队列是先进先出的队列,以保证所述连接池内的状态标识为空闲的websocket长连接的选取使用概率均等。应理解,所述连接池内存储有可复用的websocket长连接;在建立连接池时,在进行数据交互之前,预先创建多个状态标识为空闲的长连接,在接收到数据交互请求时,复用所述状态标识为空闲的长连接进行数据交互,使得服务器的配置信息无需重复设置,只需设置数据交互对端的信息即可,节省了服务器在创建长连接时所需的资源消耗。第二方面,本申请实施例提供了一种服务器,包括:连接池装置,用于存储已创建的websocket长连接;所述连接池装置预配置的属性参数包括最大连接数以及最小连接数;监听计数装置,用于实时监测所述连接池装置内的所述websocket长连接的连接总数;所述websocket长连接用于接收通信对端反馈的交互数据,以基于交互数据进行语音合成;数据交互请求响应装置,用于接收数据交互请求指令,从所述连接池装置中选取状态标识为空闲的目标长连接,通过所述状态标识为空闲的目标长连接进行数据交互,同时将所述目标长连接的状态标识调整为使用;所述状态标识为空闲的目标长连接为处于待激活状态的所述websocket长连接;所述状态标识为使用的目标长连接为处于使用状态的所述websocket长连接;创建连接装置,用于接收创建指令,当所述连接总数小于所述最大连接数时,创建一个新的所述状态标识为空闲的长连接;释放连接装置,用于接收释放指令,当所述连接总数大于所述最小连接数时,释放所述释放连接指令对应的所述websocket长连接。第三方面,本申请实施例提供了一种服务器,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的方法。第四方面,本申请实施例提供了一种计算机可读存储介质,包括:所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项所述的方法。第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行上述第一方面中任一项所述的识别方法。可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。本申请实施例与现有技术相比存在的有益效果是:相对于现有技术,本申请实施例提供的方法通过复用连接池内已建立的连接来建立websocket长连接以进行数据交互,在响应部分建立连接的请求时无须花费额外资源来进行websocket长连接的创建,既能满足建立连接实现数据交互的需求,又能节省服务器资源以保证语音合成的效率,提高整个语音合成服务的性能。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请第一实施例提供的方法的实现流程图;图2是本申请第一实施例提供的方法的连接池建立流程图;图3是本申请第二实施例提供的方法的实现流程图;图4是本申请一实施例提供的方法的应用场景示意图;图5是本申请第三实施例提供的方法的实现流程图;图6是本申请第四实施例提供的方法的实现流程图;图7是本申请第五实施例提供的方法的实现流程图;图8是本申请实施例一实施例提供的服务器的结构示意图;图9是本申请一实施例提供的监听计数装置的结构示意图;图10是本申请实施例另一实施例提供的服务器的结构示意图。具体实施方式以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在本申请说明书和所附本文档来自技高网...

【技术保护点】
1.一种数据交互的方法,应用于服务器,其特征在于,包括:/n预配置连接池的属性参数,基于所述属性参数建立所述连接池;所述属性参数包括最小连接数以及最大连接数;所述连接池用于提供可复用的websocket长连接;所述websocket长连接用于接收通信对端反馈的交互数据,以基于交互数据进行语音合成;/n实时监测所述连接池内websocket长连接的连接总数;/n若检测到关于所述websocket长连接的创建指令且所述连接总数小于所述最大连接数,则创建新的websocket长连接,以响应所述创建指令;/n若检测到关于所述websocket长连接的释放指令且所述连接总数大于所述最小连接数,则释放所述释放指令对应的所述websocket长连接,以响应所述释放指令。/n

【技术特征摘要】
1.一种数据交互的方法,应用于服务器,其特征在于,包括:
预配置连接池的属性参数,基于所述属性参数建立所述连接池;所述属性参数包括最小连接数以及最大连接数;所述连接池用于提供可复用的websocket长连接;所述websocket长连接用于接收通信对端反馈的交互数据,以基于交互数据进行语音合成;
实时监测所述连接池内websocket长连接的连接总数;
若检测到关于所述websocket长连接的创建指令且所述连接总数小于所述最大连接数,则创建新的websocket长连接,以响应所述创建指令;
若检测到关于所述websocket长连接的释放指令且所述连接总数大于所述最小连接数,则释放所述释放指令对应的所述websocket长连接,以响应所述释放指令。


2.如权利要求1所述的方法,其特征在于,所述基于所述属性参数建立所述连接池,包括:
在所述连接池中建立与所述最小连接数对应数量的多个状态标识为空闲的长连接,并将所述多个状态标识为空闲的长连接存储于空闲队列内;所述状态标识为空闲的长连接为处于待激活状态的所述websocket长连接;
在所述连接池中建立使用队列用于存储状态标识为使用的长连接;所述状态标识为使用的长连接为处于使用状态的所述websocket长连接。


3.如权利要求2所述的方法,其特征在于,所述方法还包括:
若接收数据交互请求指令,则判断所述空闲队列是否为空;
若所述连接池内的空闲队列为空,则生成关于所述websocket长连接的创建指令;
通过所述创建指令创建新的所述状态标识为空闲的目标长连接,并调用所述目标长连接响应所述数据交互请求指令,包括:
将用于响应所述数据交互请求指令的所述目标长连接的状态标识从空闲调整为使用,并将所述目标长连接添加到所述连接池的使用队列中;
检测到数据交互完成指令,将所述目标长连接的状态标识从使用调整为空闲,并将所述目标长连接添加到所述连接池内的空闲队列中。


4.如权利要求2所述的方法,其特征在于,所述方法还包括:
实时监测所述连接池内所述状态标识为空闲的长连接的空闲时长;
若所述空闲时长大于预设的标准时长,则生成关于所述状态标识为空闲的长连接的释放指令。


5.如权利要求2所述的方法,其特征在于,所述方法还包括:
实时监测所述连接池内websocket长连接的连接总数,若所述连接总数小于所述最小连接数,则创建新的状态标识为空闲的长连接,直至所述连接总数达到所述最小连接数。


6.如权利要求1...

【专利技术属性】
技术研发人员:许锋刚熊友军
申请(专利权)人:深圳市优必选科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1