Supervised Binance Spot market WebSocket stream with a bounded event queue.
Subscriptions can change while connected and are restored after reconnect.
dropped in stats/1
means events were lost; consumers must resynchronize any derived state.
Summary
Functions
Builds a symbol aggregate-trade stream name.
Builds the all-symbol mini-ticker array stream name.
Builds a symbol best-bid/ask stream name.
Returns a specification to start this module under a supervisor.
Builds a partial-depth stream name.
Pops the oldest decoded event, or returns :empty.
Pops and normalizes the oldest market event.
Closes and reopens the connection with its existing streams.
Starts a supervised market stream. Example: streams: ["btcusdt@trade"].
Returns connection and queue counters.
Adds a market stream subscription. The server confirms receipt asynchronously.
Returns the desired market stream subscriptions.
Builds a symbol 24-hour ticker stream name.
Builds a symbol trade stream name.
Removes a market stream subscription; at least one stream must remain.
Builds and validates a Spot combined-stream URL.
Types
Functions
Builds a symbol aggregate-trade stream name.
Builds the all-symbol mini-ticker array stream name.
Builds a symbol best-bid/ask stream name.
Returns a specification to start this module under a supervisor.
See Supervisor.
Builds a partial-depth stream name.
@spec pop(GenServer.server()) :: {:ok, event()} | :empty
Pops the oldest decoded event, or returns :empty.
@spec pop_normalized(GenServer.server()) :: {:ok, map()} | :empty
Pops and normalizes the oldest market event.
@spec renew(GenServer.server()) :: :ok | {:error, :disconnected}
Closes and reopens the connection with its existing streams.
@spec start_link(keyword()) :: GenServer.on_start()
Starts a supervised market stream. Example: streams: ["btcusdt@trade"].
@spec stats(GenServer.server()) :: map()
Returns connection and queue counters.
@spec subscribe(GenServer.server(), String.t()) :: :ok | {:error, String.t()}
Adds a market stream subscription. The server confirms receipt asynchronously.
@spec subscriptions(GenServer.server()) :: [String.t()]
Returns the desired market stream subscriptions.
Builds a symbol 24-hour ticker stream name.
Builds a symbol trade stream name.
@spec unsubscribe(GenServer.server(), String.t()) :: :ok | {:error, String.t()}
Removes a market stream subscription; at least one stream must remain.
Builds and validates a Spot combined-stream URL.