Subscription
订阅对象,由ctx.subscribe返回,代表一路推送订阅。可以直接传给ctx.poll,只接收这一路订阅的事件。订阅对象归属于创建它的线程:该路订阅的事件只投递给该线程,也只有该线程能够退订。批量订阅(symbol传入数组)时返回订阅对象数组,调用数组的unsubscribe()可一次性退订全部元素;该数组也可以直接传给ctx.poll()。
订阅对象具有以下只读属性,JSON.stringify(sub)的结果仅包含这些属性:
| 属性 | 类型 | 说明 |
|---|---|---|
| id | number | 事件流ID,该路订阅所产生事件的ev.stream等于此值。同一线程中身份相同的订阅,其id相同 |
| ex | number | 账户在exchanges数组中的索引 |
| channel | string | 频道:ticker、bbo、depth、trade、kline、tickers、private |
| symbol | string | 品种代码;tickers、private订阅时为空字符串 |
| depth | number | depth订阅的档位数(0表示使用交易所默认档位数),其他订阅为0 |
| interval | number | kline订阅的周期(秒),其他订阅为0 |
方法:book读取该路深度订阅的订单簿;positions、balances读取私有订阅维护的最新持仓和余额;unsubscribe用于退订。
Python中为Subscription对象,属性相同且只读,info()返回由这些属性组成的字典;批量订阅返回SubscriptionList(list的子类),其unsubscribe()可退订全部元素。Rust中对应ctx::subscribe()(批量为ctx::subscribe_many())返回的ctx::Sub,属性以方法形式提供:id()、ex()、channel()、depth()、interval()。
本章内容整章阅读
| 名称 | 描述 |
| Subscription.book | 读取本路深度订阅自身维护的订单簿,仅适用于channel为depth的订阅。 |
| Subscription.positions | 读取私有订阅根据推送维护的最新持仓,仅适用于channel为private的订阅。 |
| Subscription.balances | 读取私有订阅根据推送维护的最新余额,仅适用于channel为private的订阅。 |
| Subscription.unsubscribe | 退订:释放此订阅对象持有的引用;只有最后一个引用被释放时,才真正向交易所退订。 |