Binance oferuje wiele kanałów, na które można subskrybować w celu otrzymywania aktualizacji danych rynkowych, zleceń w czasie rzeczywistym... Poniżej przedstawiono przykład subskrypcji Tickera:
oClient := TsgcWebSocketClient.Create(nil);
oBinance := TsgcWSAPI_Binance.Create(nil);
oBinance.Client := oClient;
oBinance.SubscribeTicker('bnbbtc');
procedure OnMessage(Connection: TsgcWSConnection; const aText: string);
begin
// here you will receive the ticker updates
end;
Binance zamyka połączenie, które wysyła więcej niż 5 wiadomości na sekundę, więc subskrybowanie listy obserwowanych kilku symboli poprzez wywoływanie pojedynczych metod Subscribe w pętli może wystarczyć do utraty połączenia. Należy wywołać SubscribeStreams z tablicą nazw strumieni, a klient wyśle pojedynczą ramkę zamiast jednej ramki na strumień. UnsubscribeStreams działa w ten sam sposób. Obie metody zwracają identyfikator wiadomości wysłanej do serwera.
oBinance.SubscribeStreams(['btcusdt@aggTrade', 'btcusdt@depth', 'ethusdt@aggTrade']);
// and to unsubscribe
oBinance.UnsubscribeStreams(['btcusdt@aggTrade', 'btcusdt@depth']);
Jeśli aplikacja mimo to musi wysyłać wiele wiadomości w krótkim czasie, należy włączyć opcję Throttle klienta API, która ogranicza liczbę wiadomości wysyłanych przez klienta w oknie czasowym. Szczegóły opisano w temacie WebSocket APIs.