Push Client and Connection

connect

Signature


pub async fn connect(client: &Arc<PushClient>) -> Result<(), String>

Description

Opens TCP/TLS, authenticates with an RSA signature, starts read/write tasks, waits for server CONNECTED, then starts heartbeats.

Parameters

ParameterRust typeRequirementSDK default
client&Arc<PushClient>RequiredNone

Return

  • PushClient: Result<(), String>.
    Example

use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_connect(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = connect(push).await.map_err(|e| TigerError::Config(e))?;

    Ok(())

}

Response example


disconnect

Signature


pub fn disconnect(&self)

Description

Best-effort sends DISCONNECT, marks the client disconnected, stops background tasks, and invokes on_disconnect.

Parameters

ParameterRust typeRequirementSDK default
none-Required by Rust typeNone

Return

  • PushClient: (). No response fields on success..

Example


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_disconnect(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = push.disconnect();

    Ok(())

}

Response example


state

Signature


pub fn state(&self) -> ConnectionState

Description

Reads a connection-state snapshot: Disconnected, Connecting, or Connected.

Parameters

ParameterRust typeRequirementSDK default
none-Required by Rust typeNone

Return

  • PushClient: ConnectionState.
    Example

use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_state(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = push.state();

    Ok(())

}

Response example


set_callbacks

Signature


pub fn set_callbacks(&self, cb: Callbacks)

Description

Atomically replaces the complete set of market, account, and connection callbacks; unset fields remain None.

Parameters

ParameterRust typeRequirementSDK default
cbCallbacksRequired by Rust typeNone

Return

()

Callbacks struct fields

Callback fieldType signatureDescription
on_quoteOption<fn(QuoteData)>Stock quote changes
on_quote_bboOption<fn(QuoteData)>Best bid/offer quote
on_optionOption<fn(QuoteData)>Option quote changes
on_futureOption<fn(QuoteData)>Futures quote changes
on_depthOption<fn(QuoteDepthData)>Depth of book data
on_tickOption<fn(TradeTickData)>Trade ticks
on_full_tickOption<fn(TickData)>Full tick data
on_klineOption<fn(KlineData)>Minute kline push
on_stock_topOption<fn(StockTopData)>Stock rankings push
on_option_topOption<fn(OptionTopData)>Option rankings push
on_assetOption<fn(AssetData)>Asset changes (full snapshot every 5s)
on_positionOption<fn(PositionData)>Position changes (full snapshot every 5s)
on_orderOption<fn(OrderStatusData)>Order status changes
on_transactionOption<fn(OrderTransactionData)>Order transaction details
on_connectOption<fn()>Connection established
on_disconnectOption<fn()>Disconnected
on_errorOption<fn(String)>Error notification
on_kickoutOption<fn(String)>Kicked out by server

Example


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_set_callbacks(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let cb = Callbacks {
        on_quote: Some(|data| {
            println!("Quote change: symbol={}, latest_price={}", data.symbol, data.latest_price);
        }),
        on_order: Some(|data| {
            println!("Order change: id={}, status={}", data.id, data.status);
        }),
        on_asset: Some(|data| {
            println!("Asset change: account={}, net_liquidation={}", data.account, data.net_liquidation);
        }),
        on_position: Some(|data| {
            println!("Position change: symbol={}, quantity={}", data.symbol, data.position_qty);
        }),
        on_connect: Some(|| {
            println!("Connected");
        }),
        on_disconnect: Some(|| {
            println!("Disconnected");
        }),
        ..Callbacks::default()
    };
    push.set_callbacks(cb);

    Ok(())

}

Response example


send_heartbeat

Signature


pub fn send_heartbeat(&self) -> bool

Description

Builds and queues a Protobuf heartbeat request; success only means the local write channel accepted the frame.

Parameters

ParameterRust typeRequirementSDK default
none-Required by Rust typeNone

Return

  • PushClient: bool. Returns bool: whether the protocol frame entered the local send channel, not server acceptance..

Example


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_send_heartbeat(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = push.send_heartbeat();

    Ok(())

}

Response example



handle_message

Signature


pub fn handle_message(&self, data: &[u8])

Description

Decodes one varint32-length-prefixed Protobuf response and dispatches it by command and data type; intended mainly for tests or custom transports.

Parameters

ParameterRust typeRequirementSDK default
data&[u8]Required by Rust typeNone

Return

  • PushClient: (). No response fields on success..

Example


use std::sync::Arc;

use tigeropen::client::http_client::HttpClient;

use tigeropen::config::ClientConfig;

use tigeropen::error::TigerError;

use tigeropen::model::order::*;

use tigeropen::model::quote::*;

use tigeropen::model::quote_requests::*;

use tigeropen::model::trade_requests::*;

use tigeropen::push::*;

use tigeropen::quote::QuoteClient;

use tigeropen::trade::TradeClient;

async fn example_handle_message(config: ClientConfig, quote: &QuoteClient, trade: &TradeClient, push: &Arc<PushClient>) -> Result<(), TigerError> {

    let result_0 = push.handle_message(&[]);

    Ok(())

}

Response example



Did this page help you?