Thông tin độ sâu thị trường

API WebSocket này cung cấp cập nhật order book (độ sâu thị trường) theo thời gian thực cho các cặp giao dịch trên NAO Futures Plus – Nami Exchange.

Lấy dữ liệu giao dịch gần đây theo thời gian thực bằng socket

Tổng Quan API WebSocket này cung cấp các cập nhật theo thời gian thực cho các giao dịch gần đây trên Nami Exchange.

  • URL Cơ Bản: wss://nfp-gateway.nami.exchange

  • Đường Dẫn: /ws/public

  • Giao Thức: WebSocket

  • Kết Nối Lại: Được kích hoạt với backoff lũy tiến

Kết Nối Để thiết lập kết nối, sử dụng cấu hình WebSocket client sau:

const WS_URL = "wss://nfp-gateway.nami.exchange/ws/public?t=" + Date.now();
let socket;

function connect() {
  socket = new WebSocket(WS_URL);

  socket.onopen = () => {
    console.log("Đã kết nối tới server WebSocket");

    // Đăng ký order book cho BTCUSDT
    socket.send(JSON.stringify({
      event: "subscribe",
      data: {
        channel: "nfp:depth",
        params: ["btcusdt"]
      }
    }));
  };

  socket.onmessage = (event) => {
    const data = JSON.parse(event.data);
    console.log("Nhận dữ liệu:", data);
  };

  socket.onclose = () => {
    console.log("Ngắt kết nối, đang thử kết nối lại...");
    setTimeout(connect, 300);
  };

  socket.onerror = () => {
    socket.close();
  };
}

connect();

Sự Kiện

1. Kết Nối

  • Sự Kiện: open

  • Mô Tả: Được kích hoạt khi client kết nối thành công tới máy chủ WebSocket.

Ví Dụ:

2. Đăng Ký Order Book (Depth)

  • Sự Kiện: subscribe

  • Mô Tả: Đăng ký nhận cập nhật order book theo thời gian thực cho một cặp giao dịch cụ thể.

  • Payload: Đối tượng JSON

Ví Dụ:

3. Nhận Cập Nhật Order Book

  • Sự Kiện: nfp:depth

  • Mô Tả: Cung cấp cập nhật order book theo thời gian thực cho cặp giao dịch đã đăng ký.

  • Payload: Đối tượng JSON chứa thông tin bids/asks và metadata cập nhật.

Ví Dụ Phản Hồi (thực tế):

Ngắt Kết Nối & Kết Nối Lại

  • WebSocket client nên tự động kết nối lại khi mất kết nối.

  • Khuyến nghị dùng backoff lũy tiến (100ms → 500ms → 1000ms…).

  • Sau khi reconnect, client cần đăng ký lại (resubscribe) các channel đã dùng.


Ghi Chú

  • Symbol đăng ký dùng lowercase (btcusdt), nhưng payload trả về uppercase (BTCUSDT).

  • Dữ liệu order book biến động liên tục, client nên:

    • throttle render UI

    • xử lý update theo firstUpdateId / finalUpdateId

  • Trong trường hợp mất đồng bộ, nên reload snapshot từ REST API /price/depth.

Last updated