一种订阅行情信息流的方法及装置与流程

文档序号:22439399发布日期:2020-10-02 13:05阅读:586来源:国知局
一种订阅行情信息流的方法及装置与流程

本发明涉及计算机软件和证券行情领域,特别是涉及一种基于系统动态库注册调用的新型订阅行情信息流的方法及装置。



背景技术:

目前的证券行情主流基本已使用binary和step证券协议,根据该证券协议可对证券行情划分不同频道。目前交易所行情的划分,均根据频道来划分不同领域,然而,每个行情频道可能会包含多个类别的行情,每类行情都有自己的发布频率,从交易所收到的数据时包含全频道,全类别的行情流信息,没有办法根据具体的频道来推动客户需要的,自定义的行情信息流。

目前也出现了订阅行情频道信息流的方式,现在的订阅行情频道信息流的方式主要是通过解析交易所的全量数据,然后再把解析后的数据按照用户所需,重新组装发送给用户,然而,此方法需要解析全量数据,速度比较慢,占用带宽比较大,且当交易所规范变更时需要全量替换。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种订阅行情信息流的方法及装置,通过使用动态库注册回调技术,注册管理用户订阅配置,自动地推送用户订阅行情信息流。

为达上述目的,本发明提供一种订阅行情信息流的方法,包括如下步骤:

步骤s1,接收行情频道订阅选择,获取所选择订阅的行情频道的动态库回调接口,将所述动态库回调接口注册至系统中;

步骤s2,接收交易所行情源信息,并对其进行解析;

步骤s3,根据解析结果判断解析出的行情频道是否订阅,于判断结果为是时,调用该行情频道的动态库回调接口,将该行情频道的行情信息,存储到所述动态库回调接口的共享内存队列中;

步骤s4,利用发送线程实时从所述共享内存队列中获取所有订阅频道的行情信息,按照接收的顺序依次将行情信息发送至用户端。

优选地,于步骤s1中,获取用户选择订阅的具体行情频道的频道号,获取对应的预先生成的该行情频道的动态库回调接口,根据获取的行情频道的频道号以及对应的频道的动态库回调接口进行订阅配置,将配置保存至一固定文件中,生成配置文件,并根据所述配置文件注册相应的动态库回调接口到系统中。

优选地,于步骤s1中,设置一订阅开关,当接收到用户对该订阅开关的开启操作时,提供用户行情频道订阅选择。

优选地,于步骤s1之前,还包括如下步骤:

步骤s0,根据具体的行情频道的协议规范,生成对应行情频道的动态库回调接口。

优选地,于步骤s0中,获取行情协议,根据行情协议中具体行情频道的协议格式,生成解析该行情频道的数据的动态库回调接口。

优选地,所生成的动态库回调接口具有如下三个入参:第一个为接收行情频道数据的地址,第二个为接收行情频道数据的长度,第三个为全局的共享内存队列。

优选地,于步骤s2中,对接收到的交易所行情流信息按照协议规范进行解析,解析具体行情频道,获得具体行情频道的频道号。

优选地,于步骤s3中,若判断结果为否,则表示该行情频道没有订阅,此时舍弃该行情频道的行情数据。

优选地,于步骤s4中,所述发送线程为一独立线程。

为达到上述目的,本发明还提供一种订阅行情信息流的装置,包括:

频道选择及注册单元,用于接收行情频道订阅选择,获取所选择订阅的行情频道的动态库回调接口,将所述动态库回调接口注册至系统中;

行情信息流接收解析单元,用于接收交易所行情流信息,并对其进行解析;

动态回调接口调用单元,用于根据解析结果判断解析出的行情频道是否订阅,于判断结果为是时,调用该行情频道的动态库回调接口,将该行情频道的行情信息,存储到所述动态库回调接口的共享内存队列中;

行情信息推送单元,用于利用发送线程实时从所述共享内存队列中获取所有订阅频道的行情信息,按照接收的顺序依次将行情信息发送至用户端。

与现有技术相比,本发明一种订阅行情信息流的方法及装置通过管理用户订阅的配置,并根据用户订阅配置,注册相应的动态库回调接口,于接收到交易所行情流信息时,根据解析结果调用该行情频道的动态库回调接口,将该行情频道的行情信息存储到该动态库回调接口的全局共享内存队列中,本发明具有良好的扩展性,依据系统调用处理速度更快,并可节省带宽占用。

附图说明

图1为本发明一种订阅行情信息流的方法的步骤流程图;

图2为本发明一种订阅行情信息流的装置的系统架构图;

图3为本发明实施例中订阅行情信息流的完整流程图;

图4为本发明实施例中生成对应频道动态库回调接口的流程图;

图5为本发明实施例中动态库回调接口具体功能的描述示意图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种订阅行情信息流的方法的步骤流程图。如图1所示,本发明一种订阅行情信息流的方法,包括如下步骤:

步骤s1,接收行情频道订阅选择,根据选择订阅的行情频道及其预先生成的动态库回调接口生成配置文件,并根据该配置文件将所述动态库回调接口注册到系统中。

在本发明具体实施例中,当用户选择订阅具体的的频道行情源时,可获取用户选择订阅的具体行情频道的频道号,并获取对应的预先生成的该行情频道的动态库回调接口,根据获取的行情频道的频道号以及对应的频道的动态库回调接口提交订阅配置,将配置保存至一固定文件中,生成配置文件,于程序启动后根据该配置文件注册相应的动态库回调接口到系统中。在本发明具体实施例中,各行情频道的频道号与其动态库回调接口唯一对应,所述系统可以是windows系统,也可以是linux系统。

在本发明中,所述动态库回调接口的作用为把按照协议规范解析后的数据放到一个有序的共享内存的队列中去,具体地,于配置文件中记录该行情频道动态库回调接口的名称,然后将该动态库回调接口按照系统提供的接口函数注册到系统中去,例如调用regsvr32..\distributor.dll注册到系统中,而当想要回调该动态库中函数,可使用系统函数loadlibraryex去加载该动态库。本发明中,将该行情频道的动态库回调接口注册至系统中,相当于向系统中注册了一个解析此行情频道的方法。通过本发明,可以管理用户订阅行情频道的配置,用户可以根据需求将其所需的行情频道配置到系统中,而对于没有配置的频道,并不注册到系统中去,这样可在加快处理速度的同时,又节省了带宽占用。

优选地,于步骤s1中,可设置一订阅开关,当接收到用户对该订阅开关的开启操作时,提供用户行情频道订阅选择,即列出所有行情频道供用户进行订阅选择,当用户选择其中某个行情频道时,获取所选择的行情频道的频道号,根据该频道号获取对应的频道的动态库回调接口,生成配置文件,并于程序启动后通过该配置文件注册相应的动态库回调接口到系统中;若用户未开启该订阅开关,则不进行行情频道订阅选择,当前为订阅所有行情频道,即解析获取交易所的全量数据。

优选地,于步骤s1之前,还包括如下步骤:

s0,根据具体的行情频道的协议规范,生成对应行情频道的动态库回调接口。在本发明具体实施例中,可获取行情协议,具体可从交易所官网获取行情协议,然后根据行情协议中具体行情频道的协议格式,生成解析该行情频道的数据的动态库回调接口。

在本发明具体实施例中,所生成的动态库回调接口具有三个入参:第一个接收行情频道数据的地址,第二个接收行情频道数据的长度,第三个为全局的共享内存队列,其作用则是把解析后的行情频道数据放到该共享内存队列中。

步骤s2,接收交易所行情流信息,并对其进行解析,以解析出具体行情频道信息。在本发明具体实施例中,对接收到的交易所行情流信息按照协议规范进行解析,解析出具体行情频道,获得具体行情频道的频道号。

步骤s3,根据解析结果判断解析出的行情频道是否订阅,于判断结果为是时,调用该行情频道的动态库回调接口,将该行情频道的行情信息,存储到所述动态库回调接口的共享内存队列中。若判断结果为否,则表示该行情频道没有订阅,此时舍弃该行情频道的行情数据。

步骤s4,利用发送线程实时从所述共享内存队列中获取所有订阅频道的行情信息,按照接收的顺序依次将行情信息发送至用户端。在本发明具体实施例中,发送线程为一个独立线程,其固定地获取所述共享内存队列中的数据,推送到用户端。

可见,本发明主要是根据交易所官网中具体的协议进行解析,其具体格式已经固定,因此生成相应的动态库回调接口也比较简单,本发明根据订阅的频道号来生成具体的配置文件并将动态库回调接口注册至系统中,方便且实用并可以根据交易所的规范来动态的调整dll(动态链接库)文件数量,对于新增的频道,只需要针对新的频道扩展频道接口动态库即可,本发明具有良好的扩展性,依据系统调用处理速度更快,并节省带宽占用。

图2为本发明一种订阅行情信息流的装置的系统架构图。如图2所示,本发明一种订阅行情信息流的装置,包括:

频道选择及注册单元201,用于接收行情频道订阅选择,根据选择订阅的行情频道及其预先生成的动态库回调接口生成配置文件,并根据该配置文件将所述动态库回调接口注册到系统中。

在本发明具体实施例中,当提供用户选择订阅具体的频道行情源时,频道选择及注册单元201获取用户选择订阅的具体行情频道的频道号,并获取对应的预先生成的该行情频道的动态库回调接口,根据获取的行情频道的频道号以及对应的频道的动态库回调接口进行订阅配置,将配置保存至一固定文件中,生成配置文件,于程序启动后根据该配置文件注册相应的动态库回调接口到系统中。在本发明具体实施例中,各行情频道的频道号与其动态库回调接口唯一对应。

在本发明中,所述动态库回调接口的作用为把按照协议规范解析后的数据放到一个有序的共享内存的队列中去,具体地,于配置文件中记录该行情频道动态库回调接口的名称,然后将该接口按照系统提供的接口函数注册到系统中去。本发明中,将该行情频道的动态库回调接口注册至系统中,相当于向系统中注册了一个解析此行情频道的方法。通过本发明,用户可以根据需求将所需的行情频道配置到系统中,而对于没有配置的频道,并不注册到系统中去,这样可在加快处理速度的同时,又节省了带宽占用。

优选地,频道选择及注册单元201可设置一订阅开关,以接收用户对启动行情频道的订阅,当接收到用户对该订阅开关的开启操作时,频道选择及注册单元201提供用户对行情频道订阅选择,即列出所有行情频道供用户进行订阅选择,当用户选择其中某个行情频道时,获取所选择的行情频道的频道号,根据该频道号获取对应的频道的动态库回调接口,生成配置文件,并于程序启动后通过该配置文件注册相应的动态库回调接口到系统中;若用户未开启该订阅开关,则不进行行情频道订阅选择,当前为订阅所有行情频道,即解析获取交易所的全量数据。

行情信息流接收解析单元202,用于接收交易所行情流信息,并对其进行解析,解析出具体行情频道信息。在本发明具体实施例中,行情信息流接收解析单元202对接收到的交易所行情流信息按照协议规范进行解析,解析具体行情频道,获得具体行情频道的频道号。

动态回调接口调用单元203,用于根据解析结果判断解析出的行情频道是否订阅,于判断结果为是时,调用该行情频道的动态库回调接口,将该行情频道的行情信息,存储到所述动态库回调接口的共享内存队列中。若判断结果为否,则表示该行情频道没有订阅,此时则舍弃该行情频道的行情数据。

行情信息推送单元204,用于利用发送线程实时从所述共享内存队列中获取所有订阅频道的行情信息,按照接收的顺序依次将行情信息发送至用户端。在本发明具体实施例中,发送线程为一个独立线程,其固定地获取所述共享内存队列中的数据,推送到用户端。

优选地,本发明之订阅行情信息流的装置还包括:

动态库回调接口生成单元,用于根据具体的行情频道的协议规范,生成对应行情频道的动态库回调接口。在本发明具体实施例中,动态库回调接口生成单元通过获取行情协议,具体可从交易所官网获取行情协议,然后根据行情协议中具体行情频道的协议格式,生成解析该行情频道的数据的动态库回调接口。

在本发明具体实施例中,所生成的动态库回调接口具有三个入参:第一个为接收行情频道数据的地址,第二个为接收行情频道数据的长度,第三个为全局的共享内存队列,其作用则是把解析后的该行情频道数据放到共享内存队列中。

实施例

图3为本发明实施例中订阅行情信息流的完整流程图。在本实施例中,首先设置一订阅开关供用户选择是否订阅,如果选择订阅,则提供用户选择具体频道行情源,获取用户选择订阅的频道号;根据用户选择订阅的频道号,和预先生成的该频道的动态库回调接口,提交订阅配置,把配置保存到固定文件中以形成配置文件,于程序启动后根据该配置文件注册相应的频道的动态库回调接口到系统中;接收交易所的行情信息流,按照协议规范解析后获取具体的频道号;判断该频道号是否已经订阅(若已订阅,则此频道号的动态库回调接口已经注册到系统中),如果是则调用其动态库回调接口,否则则舍弃此频道的数据;系统调用该动态库回调接口,将该频道的行情数据存放到一个有序的共享内存队列中,并通过一独立线程固定获取该共享内存队列中的数据,推送到用户端。

图4为本发明实施例中生成对应频道动态库回调接口的流程图,具体地,首先从交易所官网下载行情协议,根据行情协议中具体频道的协议格式,来生成解析此频道的数据的动态库(dll)回调接口。

图5为本发明实施例中动态库回调接口具体功能的描述示意图。本实施例中,动态库(dll)回调接口的入参主要有三个:第一个接收频道数据的buf地址,第二个接收频道数据的长度len,第三个全局的共享内存队列,其功能上主要是将解析的行情数据放到共享内存队列中,由独立的发送线程实时从该共享内存队列中获取所有订阅频道的行情信息,并按照接收的顺序依次将行情信息发送至用户端。

综上所述,本发明一种订阅行情信息流的方法及装置通过管理用户订阅的配置,并根据用户订阅配置,注册相应的动态库回调接口,于接收到交易所行情流信息时,根据解析结果调用该行情频道的动态库回调接口,将该行情频道的行情信息存储到该动态库回调接口的全局共享内存队列中,本发明具有良好的扩展性,依据系统调用处理速度更快,并可节省带宽占用。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1