安裝
npx @insforge/cli secrets get ANON_KEY, or in the dashboard: click Install and open API Keys.
思維模型
TypeScript SDK 向您的 InsForge 後端開啟一個 Socket.IO 連線。您訂閱具名頻道、監聽事件名稱,並可選擇性地將事件發佈回您已加入的頻道。 事件可以來自兩個地方:- 呼叫
realtime.publish(channel, event, payload)的資料庫觸發器。 - 呼叫
insforge.realtime.publish(channel, event, payload)的用戶端。
快速開始
connect()
建立 WebSocket 連線。- 當存在目前身分驗證令牌時,SDK 會包含它。如果沒有登入使用者,它可以使用設定的匿名密鑰。
- 在連線已在進行中時的多次
connect()呼叫會重用相同的連線 promise。 - 連線嘗試在 10 秒後逾時。
subscribe()
訂閱頻道並接收目前的上線狀態快照。
傳回:
subscribe() 會在需要時自動連線。仍建議明確呼叫 connect(),以便連線事件處理常式已附加。
subscribe() 是冪等的:對您已加入的頻道再次呼叫它會重新要求訂閱並解析伺服器目前的上線狀態快照。伺服器按邏輯成員追蹤上線狀態,因此重複訂閱永遠不會產生重複成員或虛假的 presence:join 事件。
publish()
將事件發佈到頻道。
發佈失敗透過
error 事件發出。
on()
監聽自訂事件、連線事件、上線狀態事件和即時錯誤。once()
監聽事件一次,然後自動移除監聽器。off()
移除事件監聽器。unsubscribe()
離開頻道。unsubscribe() 是發後不理的。如果這是邏輯成員的最後一個通訊端,其他訂閱者會收到 presence:leave。
disconnect()
關閉 WebSocket 並清除本機訂閱。訊息結構
傳遞的訊息包括您的載荷欄位加上伺服器中繼資料。senderType 為 system;對於用戶端發佈的訊息,senderType 為 user。
上線狀態
成功的訂閱會傳回目前的上線狀態快照。讀取上線狀態
SDK 為每個已訂閱的頻道維護成員清單 — 從訂閱快照初始化,並透過presence:join/presence:leave 增量和重新連線重新同步保持最新。隨時讀取它,而不是自己合併增量:
重新連線
當連線中斷時,SDK 會在重新連線時自動重新訂閱每個頻道,並為每個頻道發出帶有新上線狀態快照的presence:sync。在您中斷連線期間加入或離開的成員不會產生個別的 presence:join/presence:leave 增量,因此請取代(而非合併)您在 SDK 之外保留的任何狀態:
getPresenceState() 呈現,presence:sync 只是您的重新呈現訊號。如果重新訂閱被拒絕(例如使用者的存取權在中斷連線時被撤銷),SDK 會捨棄該頻道並改為發出 error。