Hyperliquid REST vs WebSocket:幾時應該用邊個?

2026年5月6日
  • hyperliquid rest websocket

  • hyperliquid api types

  • Hyperliquid REST API

  • Hyperliquid WebSocket

好多開發者接入 Hyperliquid API 時,都會遇到同一個問題:我的策略應該用 REST,定係 WebSocket?兩種接口背後嘅技術機制好唔同,適合嘅場景亦完全唔一樣。揀錯輕則浪費頻寬同資源,重則影響策略時效,令落盤滑點遠超預期。

本文會系統拆解 REST 同 WebSocket 嘅運作原理、適用場景、延遲特性同常見陷阱,幫你判斷幾時應該用邊一種。

REST API:請求—回應模型

REST(Representational State Transfer)係最經典嘅 HTTP 接口模式:客戶端發出請求,伺服器返回回應,一問一答,之後連線結束。Hyperliquid 官方文件將 REST 接口分為兩類端點。

Info 端點(/info)處理所有只讀查詢,例如現時市場元數據、歷史成交、帳戶持倉快照。呢類請求唔需要簽名,任何客戶端都可以調用。

Exchange 端點(/exchange)處理所有寫入操作,包括落盤、取消訂單、修改槓桿同調整保證金。呢類請求必須附帶 EIP-712 結構化簽名,伺服器會驗證簽名來源同帳戶地址一致,先會執行。

REST 嘅典型應用場景

一次性數據查詢係 REST 最適合嘅場景。例如:策略啟動時拉取當前持倉狀態、定期檢查帳戶餘額、按需要取得某個合約嘅資金費率歷史。呢啲操作無即時性要求,發一次請求、攞一次答案就夠,唔需要維持長連線。

落盤同取消訂單亦係透過 REST 完成。即使策略需要即時市場數據,真正嘅交易指令仍然要經 Exchange 端點以 REST 方式提交,呢點係硬性要求,無得繞過。

大量歷史數據拉取同樣適合 REST。例如做回測時,需要下載大量歷史成交或者 K 線數據,用分頁方式循環調用 Info 端點,效率通常可以接受。

REST 嘅局限

REST 最大嘅限制係「拉取」模式——你唔會知道市場幾時會變,只能夠定期輪詢。如果每 100ms 輪詢一次訂單簿,好容易撞到速率限制;如果降到每秒一次,喺快速行情入面,策略可能已經慢咗半拍。

對於需要即時回應市場變化嘅策略,高頻輪詢既低效,亦唔可靠。

WebSocket:持久連線與即時推送

WebSocket 係一種全雙工協議,建立一次連線之後,伺服器可以主動向客戶端推送數據,唔需要客戶端反覆發請求。Hyperliquid 嘅 WebSocket 端點係:

wss://api.hyperliquid.xyz/ws

連線建立後,客戶端透過發送訂閱訊息,聲明自己想接收邊類數據;之後伺服器會持續推送相關更新事件,直至連線中斷,或者客戶端主動取消訂閱。

WebSocket 嘅典型應用場景

即時訂單簿監控係 WebSocket 最典型嘅用途。訂閱 l2Book 頻道後,每次訂單簿有變化,都會收到增量或全量更新,策略可以喺毫秒級別感知市場深度變化。

即時成交流(trades 頻道)適合監控市場衝擊同成交節奏,係判斷當前市場情緒嘅實用訊號。

帳戶事件訂閱(userEvents 頻道)可以即時知道成交回報、清算通知等帳戶級別重要事件,唔需要額外輪詢帳戶狀態。

資金費率即時追蹤對套利策略尤其重要。透過 WebSocket,可以喺資金費率有變化時即時收到通知,而唔係等下一次輪詢週期。

WebSocket 嘅注意事項

連線穩定性係 WebSocket 嘅核心挑戰。網絡波動、伺服器重啟、長時間閒置,都可能令連線斷開。喺生產環境入面,必須實作心跳機制(定期 ping/pong)同自動重連邏輯;重連之後,亦要重新訂閱所有頻道,並處理斷線期間可能遺失嘅數據。

訊息處理壓力亦唔可以忽視。當你訂閱高頻數據源,例如主流合約嘅 L2 訂單簿,訊息推送速度可能非常高。客戶端嘅解析同處理邏輯必須夠快,否則消費隊列積壓,數據會愈來愈滯後,最後反而失去「即時」意義。

詳細對比表

項目REST APIWebSocket
連線模式每次請求後返回回應建立長連線後持續推送
數據方式客戶端主動拉取伺服器主動推送
適合場景一次性查詢、初始化、歷史數據、落盤、取消訂單即時訂單簿、成交流、帳戶事件、資金費率更新
實時性取決於輪詢頻率通常更接近即時
維護成本較低需要處理心跳、重連、補數據
寫入操作必須使用 REST Exchange 端點主要用於訂閱同接收事件
常見風險輪詢過密觸發速率限制;輪詢過慢導致延遲斷線、訊息積壓、重連後狀態不一致

代碼示例對比

REST 查詢訂單簿快照(Python):

import requests

response = requests.post(
    "https://api.hyperliquid.xyz/info",
    json={"type": "l2Book", "coin": "ETH"}
)

book = response.json()

# 取得當前一刻嘅訂單簿快照,之後唔會自動更新

WebSocket 訂閱訂單簿即時更新(Python):

import asyncio
import websockets
import json

async def stream_orderbook():
    uri = "wss://api.hyperliquid.xyz/ws"

    async with websockets.connect(uri) as ws:
        await ws.send(json.dumps({
            "method": "subscribe",
            "subscription": {"type": "l2Book", "coin": "ETH"}
        }))

        # 持續接收推送;每次訂單簿變化都會收到新訊息
        async for message in ws:
            data = json.loads(message)

            # 處理即時更新
            print(data)

asyncio.run(stream_orderbook())

兩段代碼嘅分別好明顯:REST 攞一次快照就完;WebSocket 建立連線後會持續接收訊息,直至連線中斷。

落盤請求嘅簽名與 OneKey 整合

無論係透過 REST 落盤,定係透過 WebSocket 監控帳戶事件,只要涉及寫入操作,請求都需要 EIP-712 簽名。簽名密鑰嘅安全性,直接決定咗帳戶嘅安全邊界。

OneKey 錢包提供硬件級別嘅簽名隔離:私鑰儲存在安全芯片入面,任何簽名操作都喺設備內部完成,主機上嘅代碼永遠攞唔到原始私鑰。對量化交易者而言,呢代表即使策略代碼本身有安全漏洞,攻擊者亦無法單靠代碼注入去直接竊取私鑰。

一個較實際嘅工作流程係:策略代碼先構造好待簽名嘅交易請求體,透過 WalletConnect 協議將簽名請求發送到 OneKey 設備;用戶喺設備螢幕上確認後,簽名結果返回策略代碼,再提交到 Hyperliquid Exchange 端點。

呢個流程加入咗人工確認步驟,所以更適合中低頻策略。至於高頻全自動策略,則需要認真評估是否使用專用熱錢包,並將佢同主帳戶隔離管理,避免單點風險擴大。

如果你唔想由零開始處理永續合約交易流程,亦可以考慮直接使用 OneKey Perps。OneKey Perps 將 Hyperliquid 嘅深度流動性同 OneKey 錢包體驗結合,適合想用較清晰流程管理加密貨幣永續合約交易嘅用戶。不論係手動交易,定係配合較低頻嘅策略決策,都可以用 OneKey 作為更安全嘅入口。

OneKey 支援桌面同流動端下載;開源代碼亦有助開發者理解簽名整合嘅具體實作方式。

混合架構:最佳實踐

喺實際生產環境,REST 同 WebSocket 通常唔係互相取代,而係互補。一個典型嘅量化策略架構可能係:

  • WebSocket 長連線負責即時訂閱市場數據,例如 L2 訂單簿、成交流、帳戶事件
  • REST 負責落盤、取消訂單等交易指令提交
  • 策略啟動時,用 REST 一次性拉取帳戶狀態同當前持倉,作為初始化數據
  • 定期,例如每小時,用 REST 全量核對一次帳戶狀態,避免 WebSocket 因斷線而出現偏差

呢種混合架構可以同時發揮兩種接口嘅優勢,亦係 Hyperliquid 文件中隱含推薦嘅使用方式。

FAQ

Q1:如果只係做簡單定時落盤策略,需要用 WebSocket 嗎?

唔需要。定時落盤策略嘅核心需求係定時觸發同簽名落盤,兩者都可以透過 REST 完成。策略觸發時先用 REST 查詢當前價格同帳戶狀態,之後構造訂單並提交到 Exchange 端點即可。對呢類策略而言,WebSocket 可能只係額外開銷,反而增加維護複雜度。

Q2:WebSocket 斷線後,我點知自己錯過咗咩數據?

呢個係 WebSocket 開發嘅經典問題。常見做法係:重連後即刻用 REST 拉取當前完整狀態,例如訂單簿快照同帳戶持倉,將佢作為新基準,忽略斷線期間嘅增量更新。至於成交流等歷史數據,可以喺重連後查詢斷線時間段內嘅歷史成交紀錄,盡量補回空白。

Q3:REST 落盤到收到成交回報之間有幾大延遲?

REST 落盤請求嘅回應通常只確認訂單已被接受;實際成交回報需要透過 WebSocket 嘅 userEvents 頻道接收,或者再次輪詢帳戶狀態。整體延遲取決於網絡條件同 Hyperliquid 鏈嘅出塊速度。正常情況下,外界普遍反映延遲相當短,但喺極端行情下仍然可能出現延遲。

Q4:同時開幾多個 WebSocket 連線比較合適?

建議盡量將同一帳戶嘅所有訂閱集中喺少數連線上,避免開太多並發連線而觸發連線數限制。具體上限應以官方文件最新規定為準。多個獨立策略可以透過內部訊息總線共享同一條 WebSocket 連線,減少外部連線數,同時簡化重連管理。

Q5:喺 Jupyter Notebook 入面調試 WebSocket 代碼有咩要注意?

Jupyter 預設 event loop 同 asyncio 可能有兼容性問題,直接運行 asyncio.run() 有機會報錯。建議安裝 nest_asyncio,並喺 notebook 開頭調用 nest_asyncio.apply();或者將 WebSocket 代碼搬到獨立 Python 腳本入面執行。

結語

REST 同 WebSocket 唔係競爭關係,而係為唔同需求而設計嘅互補工具。簡單講:需要「當刻」數據就用 REST;需要「即時」數據就用 WebSocket;寫入操作永遠透過 REST 完成。

理解呢個分工,就掌握咗 Hyperliquid API 架構嘅核心邏輯。喺呢個基礎上,配合 OneKey 錢包作為簽名後端,可以喺兼顧安全嘅前提下,建立更穩健嘅鏈上交易流程。

如果你想用更直接嘅方式體驗 Hyperliquid 永續合約流動性,可以前往 OneKey 官方渠道下載 OneKey,並使用 OneKey Perps 開始熟悉交易流程。建議先用細額、低槓桿方式測試,確認自己理解風險同操作細節後,再決定是否進一步使用。

---免責聲明---

本文內容只供技術學習參考,不構成投資建議、法律意見或財務建議。自動化交易策略可能涉及代碼缺陷、網絡故障、接口變更等技術風險,並可能導致意外虧損。永續合約及高槓桿交易風險極高,請先充分評估自身技術能力、財務狀況同風險承受能力,再謹慎參與。

使用 OneKey 保護您的加密之旅

View details for 選購 OneKey選購 OneKey

選購 OneKey

全球最先進嘅硬件錢包。

View details for 下載應用程式下載應用程式

下載應用程式

詐騙預警。支援所有幣種。

View details for OneKey SifuOneKey Sifu

OneKey Sifu

即刻諮詢,掃除疑慮。