交易所 jiaoyisuo 分类>>
2025年全球Top加密货币交易所权威推荐交易所API模块及相关的应用平台的制作方法
交易所,交易所排名,交易所排行,加密货币交易所排行榜,加密货币是什么,加密货币交易平台,加密货币平台,币安交易所,HTX火币交易所,欧意交易所,Bybit交易所,Coinbase交易所,Bitget交易所,Kraken交易所,交易所权威推荐,全球交易所排名,虚拟货币交易所排名,加密货币,加密货币是什么
60.如果解析的结果是交易请求(例如报价请求),则所述交易请求被转发给交易平台124。在交易平台124处,可先对所述交易请求中的交易数据的格式进行识别,随后,向交易所api模块128中存储的交易所java版高性能通讯协议的api库发送协议转换请求,以通过调用api库中的相应api对所述交易数据进行协议转换。所述协议转换包括:使用api库根据java对象数据以及java对象中bizid的值来对数据进行不同的协议转换,随后将经协议转换后的交易数据发送给各外部交易所的相应的交易平台以进行交易。
61.然后,在所述交易平台124接收到来自外部交易所的相应的交易平台返回的反馈消息和/或回报消息之后,所述交易平台124再次调用交易所api模块128中相应的api将接收到的反馈数据协议转换为指定的java对象,即通过java对象中msgtype的值将接收数据转换为交易平台124需要的java对象,再将java对象转换为标准交易反馈数据。最后,交易平台124将该标准反馈数据推送给提出业务请求的相应客户端以返回交易结果。
62.如果解析的结果是行情请求(例如行情订阅请求),则所述行情请求被转发给行情平台126以进行订阅。所述行情平台126可以是例如kafka平台。例如在行情平台126处,当行情平台126从外部的交易所接收到相应的行情数据之后,可通过调用api库中的相应api来进行协议的转换,以将接收到的行情数据转换为指定的java对象,接着,将java对象再转换为标准行情数据,推送给行情平台126。行情平台126将经转换后的标准行情数据转发给发起业务请求的客户端以显示给用户。
63.而交易层包含了多个外部交易所提供的各种平台,例如上交所债券平台(binary协议)130a、上交所固收平台(step协议)130b、深交所现货集中竞价交易平台(binary协议)130c、深交所非交易处理平台(binary协议)130d、深交所固定收益平台(binary协议)130e、上交所行情平台(binary协议)130f、深交所行情平台(binary协议)130g等等。它们根据来自所述交易所应用平台120的相应请求,处理并返回所请求的交易结果或行情数据。
具体而言,所述交易所api模块128包括:存储有交易所java版高性能通讯协议的api库的数据库;编码器,被配置为使用所述api库以基于netty执行java对象到bytebuf的转换,从而将来自客户端的数据转换为外部交易所各平台所支持的协议数据;以及解码器,被配置为使用所述api库以基于netty执行bytebuf到java对象的转换,从而将来自外部交易所各平台所支持的协议数据转换成交易所应用平台的接口可用的数据类型。
具体而言,decode(解码器)基于netty将使用bytebuf将数据分割为消息头、消息体、消息尾以进行解析。通过消息头中的msgtype来判断将bytebuf转换为指定的java对象。再通过bytebuf中提供的方法,比如readlong、readunsignedshort、readbytes以及其他方法,获取每个字段的值,将值赋值到java对象中相同的字段上。在以往的交易平台中,需要认真结合接口文档区分每个字段的长度,转换赋值容易发生错误。而在本技术中,在应用层中对java对象进行赋值更加方便和快捷。对于bytebuf主要是通过readerindex和writerindex两个指针进行数据的读和写,整个bytebuf被这两个指针最多分成三个部分,分别是可丢弃部分、可读部分和可写部分。通过内置的复合缓冲类型实现零拷贝提高效率。
decode(解码器)对于step协议数据基于netty将bytebuf转换为特定的java对象,将bytebuf中消息体的部分转换为一个string字符串,结合step协议的特性,使用”0x01”来分割出字段串中的每一个键值对,将键值对通过“=”分割分别读取出键和值,再存入java对象的map中。在以往的交易平台中,对于step协议的数据,无法做到对bytebuf和java对象进行字段的一一对应,因此,需要api库进行复杂的拆分组装。而在本技术中的应用层使用java对象则更加方便和快捷。对于bytebuf主要是通过readerindex和writerindex两个指针进行数据的读和写,整个bytebuf被这两个指针最多分成三个部分,分别是可丢弃部分,可读部分和可写部分。通过内置的复合缓冲类型实现零拷贝提高效率。
首先,应用层将数据装载到api接口定义好的java对象中,随后,encode(编码器)将java对象转为step特性的string字符串并赋值到bytebuf中。在以往的交易平台中,对于step协议的数据,无法做到对bytebuf和java对象进行字段的一一对应,这需要api库进行复杂的拆分组装。而在本技术中的应用层使用java对象则更加方便和快捷。最后,基于netty将转换的数据发送给外部交易所的不同平台。