[][src]Trait crypto_ws_client::WSClient

pub trait WSClient<'a> {
    pub fn new(on_msg: Box<dyn FnMut(String) + 'a>, url: Option<&str>) -> Self;
pub fn subscribe_trade(&mut self, pairs: &[String]);
pub fn subscribe_ticker(&mut self, pairs: &[String]);
pub fn subscribe_bbo(&mut self, pairs: &[String]);
pub fn subscribe(&mut self, raw_channels: &[String]);
pub fn unsubscribe(&mut self, raw_channels: &[String]);
pub fn run(&mut self, duration: Option<u64>); }

The public interface of every WebSocket client.

Required methods

pub fn new(on_msg: Box<dyn FnMut(String) + 'a>, url: Option<&str>) -> Self[src]

Creates a new client.

Arguments

  • on_msg - A callback function to process original JSON messages
  • url - Optional server url, usually you don't need specify it

pub fn subscribe_trade(&mut self, pairs: &[String])[src]

Subscribes to trade channels.

A trade channel sends tick-by-tick trade data, which is the complete copy of a market's trading information.

Each exchange has its own pair formats, for example:

  • BitMEX XBTUSD, XBTM21
  • Binance btcusdt, btcusd_perp
  • OKEx BTC-USDT

pub fn subscribe_ticker(&mut self, pairs: &[String])[src]

Subscribes to ticker channels.

A ticker channel pushes realtime 24hr rolling window ticker messages, which contains OHLCV information.

Not all exchanges have the ticker channel, for example, BitMEX, Bitstamp, MXC Spot, etc.

pub fn subscribe_bbo(&mut self, pairs: &[String])[src]

Subscribes to best bid & offer(BBO) channels.

BBO represents best bid and offer, i.e., level1 orderbook.

Not all exchanges have the BBO channel, calling this function with these exchanges will panic.

  • Binance, BitMEX, Huobi and Kraken have BBO directly.
  • Bitfinex uses book channel with len set to 1 to get BBO data.

pub fn subscribe(&mut self, raw_channels: &[String])[src]

Subscribes to channels, lower level API.

A raw_channel can be:

  • channel:pair
  • channel
  • A JSON string

Usually a raw_channel is composed by a channel and a pair, delimited by ,. Sometimes the pair is optional, for example, instrument of BitMEX, market.overview of Huobi.

If a raw_channel starts with {, which means it is a JSON string, then it will be sent out directly without any parsing.

More examples:

  • BitMEX trade:XBTUSD, quote:XBTM21, instrument
  • Binance btcusdt, btcusd_perp
  • OKEx spot/trade:BTC-USDT

pub fn unsubscribe(&mut self, raw_channels: &[String])[src]

Unsubscribes from channels, lower level API.

pub fn run(&mut self, duration: Option<u64>)[src]

Starts the infinite loop until time is up or the server closes the connection.

Arguments

  • duration - How many seconds to run, None means infinite.
Loading content...

Implementors

impl<'a> WSClient<'a> for BinanceFutureWSClient<'a>[src]

impl<'a> WSClient<'a> for BinanceInverseSwapWSClient<'a>[src]

impl<'a> WSClient<'a> for BinanceLinearSwapWSClient<'a>[src]

impl<'a> WSClient<'a> for BinanceSpotWSClient<'a>[src]

impl<'a> WSClient<'a> for BitMEXWSClient<'a>[src]

impl<'a> WSClient<'a> for BitfinexWSClient<'a>[src]

impl<'a> WSClient<'a> for BitstampWSClient<'a>[src]

impl<'a> WSClient<'a> for CoinbaseProWSClient<'a>[src]

impl<'a> WSClient<'a> for HuobiFutureWSClient<'a>[src]

impl<'a> WSClient<'a> for HuobiInverseSwapWSClient<'a>[src]

impl<'a> WSClient<'a> for HuobiLinearSwapWSClient<'a>[src]

impl<'a> WSClient<'a> for HuobiOptionWSClient<'a>[src]

impl<'a> WSClient<'a> for HuobiSpotWSClient<'a>[src]

impl<'a> WSClient<'a> for KrakenWSClient<'a>[src]

impl<'a> WSClient<'a> for MXCSpotWSClient<'a>[src]

impl<'a> WSClient<'a> for MXCSwapWSClient<'a>[src]

impl<'a> WSClient<'a> for OKExWSClient<'a>[src]

Loading content...