/ws/aither) dùng riêng cho lệnh cổ phiếu cơ sở. Heartbeat là ping|1, format dữ liệu là message_proto|TOPIC|{JSON} — khác với bảng giá dùng pipe-delimited.
Demo tương tác
Địa chỉ WSSSTOCK_ORDER— Cập nhật trạng thái lệnh cổ phiếu cơ sở.
Demo trên chỉ mang tính minh họa. Wire format thực tế là text frame dạng
message_proto|STOCK_ORDER|{JSON}. Xem chi tiết bên dưới.Kết nối
WSS/ws/aither
Địa chỉ WebSocket đầy đủ mà bạn cần kết nối tới:
Xác thực (Authentication)
Sau khi kết nối WebSocket thành công, bạn cần gửi một text frame xác thực theo format sau:BASE64_PAYLOAD là base64 encode của một chuỗi JSON chứa token OpenAPI của bạn:
Sau khi nhận được message xác thực, server sẽ trả về hai message. Đầu tiên là timeout config cho biết khoảng thời gian heartbeat tối đa:
Đăng ký kênh (Subscribe)
Sau khi auth thành công, bạn gửi message subscribe để đăng ký nghe topicSTOCK_ORDER. Message client gửi lên:
Heartbeat — Giữ kết nối
Để giữ kết nối sống, client PHẢI gửi heartbeat text frame mỗi 2 giây. Nếu server không nhận được heartbeat nào trong 7 giây (giá trịpingTimeout server đã gửi lúc auth) thì sẽ tự động ngắt kết nối.
Message heartbeat mà client gửi lên:
Cấu trúc Message
Server gửi về cho bạn 2 loại message chính:
Với data message (cập nhật lệnh), format mà server trả về sẽ là:
Data Schema — STOCK_ORDER
STOCK_ORDER — Thông tin lệnh cơ sởBảng trạng thái lệnh (orStatus)
Sequence Diagram
Luồng kết nối WebSocket thay đổi thông tin lệnh cơ sởXử lý lỗi & Reconnect
Chiến lược reconnect: Bạn nên dùng exponential backoff với công thức
delay = min(2^attempt, 30) giây. Tối đa thử 10 lần, sau đó nên alert để kiểm tra thủ công.
Code hoàn chỉnh
FAQ
Topic STOCK_ORDER gửi data khi nào?
Topic STOCK_ORDER gửi data khi nào?
Mỗi khi lệnh của bạn thay đổi trạng thái: đặt, gửi sàn, khớp, khớp một phần, huỷ, sửa, từ chối, hết hiệu lực.
Format authenticate khác gì so với bảng giá (d|a|||)?
Format authenticate khác gì so với bảng giá (d|a|||)?
Endpoint Aither dùng format
authenticate|base64({'jwt':'token'}) — base64 encode toàn bộ JSON object chứa JWT. Bảng giá (Thesis/Ouranos) dùng d|a|||base64(token_raw).Heartbeat dùng format nào?
Heartbeat dùng format nào?
Gửi
ping|1 (text frame) mỗi 2 giây. Timeout mặc định là 7 giây (từ server config pingTimeout|7).Có cần truyền accountNo khi subscribe không?
Có cần truyền accountNo khi subscribe không?
Không. Subscribe chỉ cần topic name. Server tự xác định account từ JWT token đã xác thực.