Kết nối WebSocket
Thiết lập kết nối FastConnect WebSocket và quy tắc request tổng quát.
Tổng quan
FastConnect WebSocket dùng để stream dữ liệu giao dịch và dữ liệu thị trường theo thời gian thực.
Trước khi kết nối, client cần lấy token từ API getAccessToken.
Endpoint kết nối
wss://stream.ssi.com.vnĐiều kiện sử dụng
- Access token còn hiệu lực.
- Client duy trì heartbeat trong suốt phiên kết nối.
- Sau khi reconnect, cần subscribe lại các topic cần theo dõi.
Xác thực và kết nối
Tài liệu mô tả việc lấy token từ client_id, api_key, api_secret qua API auth.
Sau đó dùng token để kết nối stream.
{
"client_id": "666666",
"api_key": "<api-key>",
"api_secret": "<api-secret>",
"access_token": "<access-token>"
}Cấu trúc request WebSocket tổng quát
Mỗi message gửi qua WebSocket đều theo cấu trúc chung:
{
"method": "SUBSCRIBE|UNSUBSCRIBE|LIST_SUBSCRIPTION|PING|PONG",
"channel": "TRADING|DATA|HEARTBEAT",
"topics": ["trade.SSI@tick", "trade.SSI@1m", "room.*"]
}List subscription
Client có thể kiểm tra scope hiện tại bằng request:
{
"method": "LIST_SUBSCRIPTION"
}Response trả về các quyền truy cập theo nhóm trading/data.
Event type chính
connectheartbeatorderEventorderMatchEventclientPortfolioEventfcoEvent— sự kiện lệnh điều kiện (FCO)tradequoteroomputoddlotmarkettrade.index— giá trị chỉ số thời gian thựcindexsummary— thông tin tổng hợp của chỉ số
data-corporateActionsGET
Truy vấn danh sách sự kiện quyền của doanh nghiệp (cổ tức, thưởng cổ phiếu, phát hành thêm...) theo mã chứng khoán và khoảng thời gian. Sự kiện đã có ngày giao dịch không hưởng quyền được lọc theo ngày này; sự kiện mới công bố chưa có ngày giao dịch không hưởng quyền được lọc theo ngày thực hiện hoặc ngày công bố tin, khi đó `exrightDate` và `ratio` có thể là chuỗi rỗng. Kết quả sắp xếp theo ngày giao dịch không hưởng quyền giảm dần. Scope yêu cầu là `data:corporateActions:get`.
Heartbeat và SubscriptionWS
Mô tả cơ chế ping pong, heartbeat và danh sách subscription của WebSocket FastConnect.