WebSocket API Reference

ស្ទ្រីមទិន្នន័យពេលវេលាជាក់ស្តែងសម្រាប់ទីតាំងវារីអន្តរធាន អត្រាការផ្តល់មូលនិធិ ការលុបចោល និងពិន្ទុការបញ្ជាក់ AI។ ពេលវេលាយឺតតិចជាងមួយវិនាទីជាមួយនឹងការតភ្ជាប់ឡើងវិញស្វ័យប្រវត្តិ ការបង្ហាប់ទិន្នន័យដែលមានប្រសិទ្ធភាព និងការជាវច្រើនស្ទ្រីម។

ទិដ្ឋភាពទូទៅ

WebSocket API ផ្តល់នូវការទំនាក់ទំនងពីរទិសដោយពេលវេលាយឺតតិចសម្រាប់ទិន្នន័យដេរីវេគ្រីបតូ។ ជំនួសឱ្យការស្ទង់ REST endpoints រៀងរាល់ 5-30 វិនាទី ការតភ្ជាប់ WebSocket ផ្តល់នូវការអាប់ដេតភ្លាមៗនៅពេលស្ថានភាពទីផ្សារផ្លាស់ប្តូរ។ ល្អសម្រាប់បូតធ្វើពាណិជ្ជកម្ម ប្រព័ន្ធជូនដំណឹង និងផ្ទាំងពេលវេលាជាក់ស្តែង។

អត្ថប្រយោជន៍សំខាន់ៗនៃ WebSocket ធៀបនឹង REST៖

ពេលវេលាយឺតតិចជាងមួយវិនាទីសម្រាប់ព្រឹត្តិការណ៍ដែលធ្វើឱ្យទីផ្សារផ្លាស់ប្តូរ (ការលុបចោល ចលនាវារីអន្តរធាន)
ការប្រើប្រាស់ប្រេងជាតិបញ្ញើដែលមានប្រសិទ្ធភាពជាមួយនឹងការអាប់ដេតដែលបានអ៊ិនកូដដោយឌែលតា
ការជាវច្រើនក្នុងពេលតែមួយលើការតភ្ជាប់តែមួយ
ការត្រងនិងការបូកសរុបពីខាងម៉ាស៊ីនបម្រើ
ការដោះស្រាយចង្វាក់បេះដូង និងការតភ្ជាប់ឡើងវិញស្វ័យប្រវត្តិ
ចំនួនសំណើ API តិចជាងនេះទៅទាស់នឹងកូតារបស់អ្នក
ការតភ្ជាប់ WebSocket មានសម្រាប់កម្រិត API ទាំងអស់។ អ្នកប្រើប្រាស់កម្រិតឥតគិតថ្លៃអាចជាវស្ទ្រីមអត្រាការផ្តល់មូលនិធិ និងការលុបចោល។ កម្រិតអ្នកធ្វើពាណិជ្ជកម្ម និង Pro បើកចំហទីតាំងវារីអន្តរធាន ការចាប់អារម្មណ៍ដែលបើកចំហ និងពិន្ទុការបញ្ជាក់។

ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ

ការតភ្ជាប់ WebSocket ប្រើការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវដូចគ្នានឹង REST endpoints។ បញ្ជូនលេខសំងាត់ API របស់អ្នកជាប៉ារ៉ាម៉ែត្រសំណួរ ឬផ្ញើវានៅក្នុងសារដំបូងបន្ទាប់ពីតភ្ជាប់។

URL តភ្ជាប់

URL WebSocket មូលដ្ឋាន៖ wss://ws.smartmoneyapi.com/stream

ដាក់លេខសំងាត់ API របស់អ្នកនៅក្នុង URL តភ្ជាប់៖

URL
wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789

វដ្តជីវិតនៃការតភ្ជាប់

ការតភ្ជាប់ដំបូង

នៅពេលអ្នកតភ្ជាប់ទៅ WebSocket endpoint ម៉ាស៊ីនបម្រើផ្ទៀងផ្ទាត់លេខសំងាត់ផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវរបស់អ្នក ហើយផ្ញើការទទួលស្គាល់ការតភ្ជាប់។

ការឆ្លើយតបពីម៉ាស៊ីនបម្រើ (JSON)
{ "type": "connection_ack", "connection_id": "conn_1a2b3c4d5e6f7g8h", "server_version": "1.2.4", "timestamp": "2026-03-21T14:35:22Z", "api_tier": "pro", "max_subscriptions": 50, "max_symbols_per_sub": 100 }

ចង្វាក់បេះដូង (Ping/Pong)

ម៉ាស៊ីនបម្រើផ្ញើ ping ចង្វាក់បេះដូងរៀងរាល់ 30 វិនាទី។ ម៉ាស៊ីនភ្ញៀវរបស់អ្នកត្រូវតែឆ្លើយតបជាមួយសារ pong ដើម្បីរក្សាការតភ្ជាប់ឱ្យនៅរស់។ ប្រសិនបើម៉ាស៊ីនបម្រើមិនទទួលបានការឆ្លើយតប pong ក្នុងរយៈពេល 10 វិនាទី ការតភ្ជាប់នឹងត្រូវបានបិទ។

JavaScript
const ws = new WebSocket("wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789"); ws.onmessage = (event) => { const msg = JSON.parse(event.data); if (msg.type === "ping") { // ឆ្លើយតប ping ជាមួយ pong ws.send(JSON.stringify({ type: "pong", id: msg.id })); } }; ws.onopen = () => { console.log("Connected to WebSocket"); };

ការជាវ

បន្ទាប់ពីតភ្ជាប់ ជាវស្ទ្រីមទិន្នន័យដោយប្រើសារជាវ។ ការជាវនីមួយៗបង្កើតការអាប់ដេតនៅពេលដែលទិន្នន័យទីផ្សារផ្លាស់ប្តូរ។

ទម្រង់សារជាវ

JSON
{ "type": "subscribe", "channel": "whale_positions", "symbols": ["BTCUSDT", "ETHUSDT"], "params": { "min_position_size": 10, "exchanges": ["bybit", "binance"] } }

ទម្រង់សារមិនជាវ

JSON
{ "type": "unsubscribe", "channel": "whale_positions", "symbols": ["BTCUSDT"] }

ស្ទ្រីមទីតាំងវារីអន្តរធាន

ការអាប់ដេតពេលវេលាជាក់ស្តែងសម្រាប់ទីតាំងវារីអន្តរធានធំៗលើសញ្ញាសម្គាល់ និងគេហទំព័រដែលត្រូវបានតាមដានទាំងអស់។ ការអាប់ដេតត្រូវបានផ្ញើនៅពេលដែលវារីអន្តរធានបើក បិទ ឬកែប្រែទីតាំង។ រួមបញ្ចូលតម្លៃចូល តម្លៃបច្ចុប្បន្ន P&L ហិរញ្ញវត្ថុ និងហានិភ័យការលុបចោល។

JSON — ជាវ
{ "type": "subscribe", "channel": "whale_positions", "symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"] }

អាប់ដេតសារ

JSON — អាប់ដេត
{ "type": "data", "channel": "whale_positions", "symbol": "BTCUSDT", "data": { "wallet_address": "0x1234...", "exchange": "bybit", "direction": "long", "position_size": 25.3, "entry_price": 41200.0, "current_price": 43200.5, "pnl": 50701.50, "pnl_percent": 4.86, "leverage": 8, "liquidation_price": 33760.0, "timestamp": "2026-03-21T14:35:45Z" } }

ស្ទ្រីមអត្រាកំណែ

អាប់ដេតអត្រាកំណែពេលវេលាជាក់ស្តែងនៅលើ Bybit, Binance និង Hyperliquid។ អាប់ដេតរៀងរាល់ 1 នាទី ឬនៅពេលអត្រាផ្លាស់ប្តូរយ៉ាងសំខាន់។ រួមមានអត្រាប្តូរប្រាក់បុគ្គល និងវិភាគសរុប។

JSON — ជាវ
{ "type": "subscribe", "channel": "funding_rates", "symbols": ["BTCUSDT", "ETHUSDT"] }

អាប់ដេតសារ

JSON — អាប់ដេត
{ "type": "data", "channel": "funding_rates", "symbol": "BTCUSDT", "data": { "timestamp": "2026-03-21T14:00:00Z", "bybit": { "rate": 0.000120, "next_rate": 0.000145 }, "binance": { "rate": 0.000098, "next_rate": 0.000115 }, "hyperliquid": { "rate": 0.000140, "next_rate": 0.000160 }, "aggregated": { "mean": 0.000119, "median": 0.000120, "spread": 0.000062 } } }

ស្ទ្រីមការលក់ដីខ្ចប់

សារការលក់ដីខ្ចប់ពេលវេលាជាក់ស្តែងដែលបង្ហាញការបិទបញ្ចប់មុខតំណែងដែលប្រើហិរញ្ញវត្ថុ។ រួមមានទំហំមុខតំណែង តម្លៃលក់ដីខ្ចប់ ទិសដៅ (long/short) និងការផ្លាស់ប្តូរ។ មានប្រយោជន៍សម្រាប់កំណត់អត្តសញ្ញាណការលក់ដីខ្ចប់ជាបន្តបន្ទាប់ និងចលនាទីផ្សារដែលមានឥទ្ធិពលខ្ពស់។

JSON — ជាវ
{ "type": "subscribe", "channel": "liquidations", "params": { "min_size_usd": 50000 } }

អាប់ដេតសារ

JSON — អាប់ដេត
{ "type": "data", "channel": "liquidations", "data": { "exchange": "binance", "symbol": "BTCUSDT", "direction": "long", "position_size": 12.5, "liquidation_price": 41000.0, "size_usd": 512500.0, "timestamp": "2026-03-21T14:35:12Z" } }

ស្ទ្រីមការចាប់អារម្មណ៍បើក

ការចាប់អារម្មណ៍បើកសរុបសម្រាប់អ្នកធ្វើជំនួញហិរញ្ញវត្ថុទាំងអស់នៅលើសញ្ញានីមួយៗ។ តាមដានការកើនឡើងនៃ OI (ប្រាក់បន្ថែមដែលចូលក្នុងហិរញ្ញវត្ថុ) និងការថយចុះ (ការបិទមុខតំណែង)។ ភាពខុសគ្នារបស់ OI ពីចលនាតម្លៃកំណត់អត្តសញ្ញាណការអស់កម្លាំងគោលដៅ/អភិវឌ្ឍ។

JSON — ជាវ
{ "type": "subscribe", "channel": "open_interest", "symbols": ["BTCUSDT", "ETHUSDT"] }

ស្ទ្រីមពិន្ទុបញ្ជាក់

ពិន្ទុបញ្ជាក់ AI ពេលវេលាជាក់ស្តែងដែលបញ្ចូលមុខតំណែងអ្នកលក់ដូរ សញ្ញានៅលើខ្សែសង្វាក់ អត្រាកំណែ និងទិន្នន័យអារម្មណ៍។ ពិន្ទុអាប់ដេតនៅពេលសញ្ញាមូលដ្ឋានផ្លាស់ប្តូរ ផ្តល់សញ្ញាចូល/ចេញដែលមានជីវិតសម្រាប់ក្បួនដោះស្រាយធ្វើជំនួញ។

JSON — ជាវ
{ "type": "subscribe", "channel": "confirmation_scores", "symbols": ["BTCUSDT", "ETHUSDT", "SOLUSDT"] }

ហេដ្ឋារចនាសម្ព័ន្ធការតភ្ជាប់ឡើងវិញស្វ័យប្រវត្តិ

បញ្ហាបណ្តាញ ឬការថែទាំម៉ាស៊ីនបម្រើអាចបណ្តាលឱ្យមានការផ្តាច់ការតភ្ជាប់។ អនុវត្តហេដ្ឋារចនាសម្ព័ន្ធការតភ្ជាប់ឡើងវិញស្វ័យប្រវត្តិដើម្បីជួសជុលដោយស្វ័យប្រវត្តិពីការបរាជ័យ ខណៈដែលគោរពតម្លៃបន្ទុកម៉ាស៊ីនបម្រើ។

យុទ្ធសាស្ត្រការតភ្ជាប់ឡើងវិញដែលណែនាំ

JavaScript
class SmartMoneyWebSocket { constructor(token, options = {}) { this.token = token; this.maxReconnectDelay = options.maxReconnectDelay || 30000; this.reconnectDelay = 1000; this.subscriptions = new Map(); this.connect(); } connect() { this.ws = new WebSocket( `wss://ws.smartmoneyapi.com/stream?token=${this.token}` ); this.ws.onopen = () => { console.log("Connected"); this.reconnectDelay = 1000; // Reset backoff this.resubscribe(); // Re-subscribe after reconnect }; this.ws.onmessage = (event) => { const msg = JSON.parse(event.data); if (msg.type === "ping") { this.ws.send(JSON.stringify({ type: "pong", id: msg.id })); } this.onMessage(msg); }; this.ws.onclose = () => this.reconnect(); this.ws.onerror = (err) => console.error("WebSocket error:", err); } reconnect() { console.log(`Reconnecting in ${this.reconnectDelay}ms`); setTimeout(() => { this.connect(); this.reconnectDelay = Math.min( this.reconnectDelay * 1.5, this.maxReconnectDelay ); }, this.reconnectDelay); } subscribe(channel, symbols, params) { const key = `${channel}:${symbols.join(",")}`; this.subscriptions.set(key, { channel, symbols, params }); this.ws.send(JSON.stringify({ type: "subscribe", channel, symbols, params })); } resubscribe() { for (const { channel, symbols, params } of this.subscriptions.values()) { this.ws.send(JSON.stringify({ type: "subscribe", channel, symbols, params })); } } onMessage(msg) { if (msg.type === "data") { console.log(`Update: ${msg.channel}/${msg.symbol}`, msg.data); } } } const client = new SmartMoneyWebSocket("sk_live_abc123xyz789"); client.subscribe("whale_positions", ["BTCUSDT", "ETHUSDT"]); client.subscribe("funding_rates", ["BTCUSDT"]); client.subscribe("liquidations", [], { min_size_usd: 100000 });

ឧទាហរណ៍កូដ

Python WebSocket Client

Python
import asyncio import json import websockets async def stream_whale_positions(): uri = "wss://ws.smartmoneyapi.com/stream?token=sk_live_abc123xyz789" async with websockets.connect(uri) as websocket: # Wait for connection ack ack = await websocket.recv() print(f"Connected: {ack}") # Subscribe to whale positions await websocket.send(json.dumps({ "type": "subscribe", "channel": "whale_positions", "symbols": ["BTCUSDT", "ETHUSDT"] })) # Listen for updates while True: try: msg = await websocket.recv() data = json.loads(msg) if data["type"] == "ping": # Respond to ping await websocket.send(json.dumps({ "type": "pong", "id": data["id"] })) elif data["type"] == "data": print(f"New position: {data['data']}") except websockets.exceptions.ConnectionClosed: print("Connection closed, reconnecting...") await asyncio.sleep(1) asyncio.run(stream_whale_positions())

គន្លឹះអំពីដំណើរការ

ត្រងនៅពេលជាវ៖ ប្រើវត្ថុ params ដើម្បីត្រងទិន្នន័យនៅផ្នែកម៉ាស៊ីនបម្រើ (min_position_size, min_size_usd) ជាជាងត្រងនៅក្នុងកម្មវិធីរបស់អ្នក។
ការជាវជាក្រុម៖ ជាវសញ្ញាច្រើនក្នុងសារតែមួយជាជាងការជាវមួយៗក្នុងមួយសញ្ញា។
លែងជាវដែលមិនបានប្រើ៖ នៅពេលអ្នកមិនត្រូវការស្ទ្រីមទៀត សូមលែងជាវដើម្បីសន្សំប្រូក្សានិងកាត់បន្ថយបរិមាណសារ។
ប្រើការបង្ហាប់ gzip៖ បើកការបង្ហាប់សារនៅក្នុងកម្មវិធី WebSocket របស់អ្នកសម្រាប់ការសន្សំប្រូក្សានិងកាត់បន្ថយបរិមាណសារ។
តាមដានសុខភាពការតភ្ជាប់៖ តាមដានពេលវេលាប្រតិកម្ម ping/pong និងការតភ្ជាប់ឡើងវិញស្វ័យប្រវត្តិដើម្បីវាយតម្លៃបញ្ហាបណ្តាញ។
ផ្ទុកសារក្នុងពេលផ្តាច់ការតភ្ជាប់៖ នៅពេលការតភ្ជាប់ដាច់ សូមដាក់សញ្ញាយុទ្ធសាស្ត្រទៅក្នុងជួរ ហើយអនុវត្តពួកវានៅពេលតភ្ជាប់ឡើងវិញ។

ចាប់ផ្តើមស្ទ្រីមឥឡូវនេះ

ទទួលគន្លឹះ API របស់អ្នក ហើយចាប់ផ្តើមបង្កើតប្រព័ន្ធពាណិជ្ជកម្មពេលវេលាពិត។ ការផ្សព្វផ្សាយ WebSocket មាននៅក្នុងគ្រប់កម្រិត។

ទទួលគន្លឹះ API

បង្កើតប្រព័ន្ធពាណិជ្ជកម្មពេលវេលាពិត

ផ្សព្វផ្សាយតំណែងអ្នកលក់ដុំ អត្រាការផ្តល់ហិរញ្ញប្បទាន និងពិន្ទុបញ្ជាក់ AI ជាមួយនឹងពេលវេលាយឺតយ៉ាវតិចជាងមួយវិនាទី។

មើលផែនការ
ចាប់ផ្តើមដោយឥតគិតថ្លៃ — ៥០ ការហៅ/ថ្ងៃ គ្មានកាត

ទទួលបានលំហូរអ្នកលក់ដុំផ្ទាល់ ការផ្តល់ហិរញ្ញប្បទាន ការចាប់អារម្មណ៍បើក និងទិន្នន័យលើសង្វាក់ពី API តែមួយ។ កម្រិតឥតគិតថ្លៃ គ្មានកាតឥណទាន ដំឡើងកម្រិតគ្រប់ពេល។

ចាប់ផ្តើមដោយឥតគិតថ្លៃ →
សាកល្បងកុងស៊ូល API ផ្ទាល់ → (មិនត្រូវការគណនី)
ទទួលគន្លឹះ API របស់អ្នកក្នុងរយៈពេល ៣០ វិនាទី

រួចរាល់ដើម្បីបង្កើតទេ? យកគន្លឹះ API ឥតគិតថ្លៃ (៥០ ការហៅ/ថ្ងៃ គ្មានកាត) ហើយចាប់ផ្តើមទាញយកទិន្នន័យអ្នកលក់ដុំផ្ទាល់ ការផ្តល់ហិរញ្ញប្បទាន និងទិន្នន័យលើសង្វាក់។

ទទួលគន្លឹះ API របស់អ្នក →