glupbit/websocket/subscription
WebSocket subscription types, message builders, and response decoders.
Types
Response from a LIST_SUBSCRIPTIONS query.
pub type ListSubscriptionsResponse {
ListSubscriptionsResponse(
method: String,
result: List(SubscriptionInfo),
ticket: String,
)
}
Constructors
-
ListSubscriptionsResponse( method: String, result: List(SubscriptionInfo), ticket: String, )
Real-time orderbook data from WebSocket.
pub type OrderbookData {
OrderbookData(
code: String,
total_ask_size: Float,
total_bid_size: Float,
orderbook_units: List(orderbook.OrderbookUnit),
timestamp: Int,
)
}
Constructors
-
OrderbookData( code: String, total_ask_size: Float, total_bid_size: Float, orderbook_units: List(orderbook.OrderbookUnit), timestamp: Int, )
A subscription request.
pub type Subscription {
TickerSub(
codes: List(types.Market),
is_only_snapshot: Bool,
is_only_realtime: Bool,
)
TradeSub(
codes: List(types.Market),
is_only_snapshot: Bool,
is_only_realtime: Bool,
)
OrderbookSub(
codes: List(types.Market),
level: option.Option(String),
is_only_snapshot: Bool,
is_only_realtime: Bool,
)
CandleSub(
codes: List(types.Market),
unit: String,
is_only_snapshot: Bool,
is_only_realtime: Bool,
)
MyOrderSub(codes: option.Option(List(types.Market)))
MyAssetSub
}
Constructors
-
TickerSub( codes: List(types.Market), is_only_snapshot: Bool, is_only_realtime: Bool, ) -
TradeSub( codes: List(types.Market), is_only_snapshot: Bool, is_only_realtime: Bool, ) -
OrderbookSub( codes: List(types.Market), level: option.Option(String), is_only_snapshot: Bool, is_only_realtime: Bool, ) -
CandleSub( codes: List(types.Market), unit: String, is_only_snapshot: Bool, is_only_realtime: Bool, ) -
MyOrderSub(codes: option.Option(List(types.Market))) -
MyAssetSub
Information about a single active subscription.
pub type SubscriptionInfo {
SubscriptionInfo(
type_name: String,
codes: option.Option(List(String)),
level: option.Option(Float),
)
}
Constructors
-
SubscriptionInfo( type_name: String, codes: option.Option(List(String)), level: option.Option(Float), )
Real-time ticker data from WebSocket.
pub type TickerData {
TickerData(
code: String,
trade_price: Float,
change: String,
signed_change_rate: Float,
acc_trade_volume_24h: Float,
timestamp: Int,
)
}
Constructors
-
TickerData( code: String, trade_price: Float, change: String, signed_change_rate: Float, acc_trade_volume_24h: Float, timestamp: Int, )
Real-time trade data from WebSocket.
pub type TradeData {
TradeData(
code: String,
trade_price: Float,
trade_volume: Float,
ask_bid: String,
trade_timestamp: Int,
sequential_id: Int,
)
}
Constructors
-
TradeData( code: String, trade_price: Float, trade_volume: Float, ask_bid: String, trade_timestamp: Int, sequential_id: Int, )
Values
pub fn build_list_subscriptions_message(ticket: String) -> String
Build a LIST_SUBSCRIPTIONS request message as a JSON string.
pub fn build_subscription_message(
ticket: String,
subscriptions: List(Subscription),
format: WsFormat,
) -> String
Build a WebSocket subscription message as a JSON string. Returns a JSON array: [{“ticket”:“…”}, {“type”:“ticker”,“codes”:[…]}, …, {“format”:“DEFAULT”}]
pub fn list_subscriptions_response_decoder() -> decode.Decoder(
ListSubscriptionsResponse,
)
Decoder for the LIST_SUBSCRIPTIONS response message.
pub fn orderbook_data_decoder() -> decode.Decoder(OrderbookData)
Decoder for WebSocket orderbook data.
pub fn subscription_info_decoder() -> decode.Decoder(
SubscriptionInfo,
)
Decoder for a single subscription info item.
pub fn ticker_data_decoder() -> decode.Decoder(TickerData)
Decoder for WebSocket ticker data.
pub fn trade_data_decoder() -> decode.Decoder(TradeData)
Decoder for WebSocket trade data.