跳转到内容

WebSocket

wss://api.panshi.io/ws/<channel>

路径权限说明
/ws登录 (session cookie)当前用户的私频道:钱包更新、站内信、订单 / 持仓变动
/ws/portfolio/:id公开指定组合(必须 is_public=1)的持仓 / 订单 / 资金曲线推送
/ws/market公开全局 mark price 广播

私频道用浏览器 session cookie 鉴权(登录态的 Web 客户端直接连即可)。非浏览器环境可以通过 api_key/v1/* REST + 轮询代替。

推送消息统一结构:

{"ch":"mark/BTCUSDT","ts":1776900000000,"data":{"price":68321.5}}
  • ch — 频道名,如 user:walletportfolio:P0000007:equitymark/BTCUSDT
  • ts — 服务端时间(毫秒 UNIX 时间戳)
  • data — 载荷,不同频道 schema 不同
{"op":"sub","ch":"mark/BTCUSDT"}
{"op":"unsub","ch":"mark/BTCUSDT"}

私频道 /ws 连上即默认订阅当前用户所有相关事件,无需再发 sub

客户端每 30s 发 {"op":"ping"},服务端回 {"op":"pong"};连续 60s 无消息服务端断开。ccxt / 官方 SDK 的自动心跳即可兼容。

  • visibilitychange 回到前台时客户端应主动 reconnect
  • 网络恢复(online 事件)同样重连
  • 服务端不保留离线消息;如需历史事件走 /v1/inbox/v1/portfolios/:id/orders
  • 单连接同时订阅频道数 ≤ 50
  • 每秒消息数受 速率限制 约束
  • 异常刷 sub / unsub 洪水的连接会被服务端主动断开