developers:websocket

This is an old revision of the document!


The WebSocket API provides a high-performance, low-latency communication channel for real-time trading data and order execution. This section introduces the key technologies used in the API: WebSockets and Google Protocol Buffers (Protobuf).

WebSockets establish a persistent, full-duplex connection between the client and server, allowing for continuous bi-directional message exchange. This ensures minimal latency, making it ideal for market data feeds and order updates.

Key Advantages:

  • Persistent connection reduces handshake overhead
  • Low-latency, real-time data exchange
  • Efficient bandwidth usage compared to REST APIs

The API utilizes Protobuf for efficient, compact, and high-speed message serialization. Unlike JSON or XML, Protobuf messages are smaller and faster to parse, making them well-suited for high-frequency trading applications.

Why Protobuf?

  • Compact Encoding: Reduces message size for faster transmission
  • High Performance: Faster serialization/deserialization than JSON
  • Schema Evolution: Backward-compatible changes allow for future expansion without breaking existing clients

The API follows a structured messaging approach:

  • Client Messages: Requests sent from clients to the server (e.g., order submission, subscription requests)
  • Server Messages: Responses and real-time updates sent from the server (e.g., trade confirmations, market data)

All messages are wrapped within a top-level client or server message envelope. This structure ensures extensibility and consistency across different message types.

Example Envelope: ``` message ClientMessage {

oneof payload {
  SubscribeRequest subscribe = 1;
  OrderRequest order = 2;
}

}

message ServerMessage {

oneof payload {
  MarketUpdate market_data = 1;
  OrderResponse order_response = 2;
}

} ```

This design enables efficient message parsing while maintaining flexibility.

Continue to the [Connecting and Authenticating](developers:websocket:connecting) section to learn how to establish a WebSocket connection and authenticate your session.

  • developers/websocket.1741975005.txt.gz
  • Last modified: 2025/03/14 17:56
  • by 127.0.0.1