Skip to main content

WebSocket 中继

Scraping API 可以通过代理网络中继双向 WebSocket 连接。所有 WS 子协议均透明中继 — Socket.IO、SignalR、Centrifugo、GraphQL-WS、原生 WebSocket 等。

端点

连接流程

1

连接到网关

打开到 wss://scraping-api.55-tech.com/ws 的 WebSocket 连接。连接时无需身份验证 — 网关会立即接受连接。
2

发送连接消息(10 秒内)

发送一条 JSON 消息,指定目标 URL 和您的 API 密钥。您有 10 秒时间发送此消息,否则连接将以关闭代码 1008 断开。
3

接收连接确认

网关选择代理节点,代理节点连接到目标 WebSocket,然后网关响应:
4

双向中继帧

连接建立后,所有文本帧和二进制帧均透明中继:
  • 客户端 -> 目标:您的消息按原样转发到目标
  • 目标 -> 客户端:目标消息按原样转发给您
  • 关闭帧:触发双方优雅关闭
  • PONG 帧:来自目标的 PONG 帧转发给客户端

错误响应

如果出现问题,网关会发送:
常见错误:
  • API 密钥无效或缺失(关闭代码 1008
  • 超出速率限制(关闭代码 1008
  • 10 秒内未收到连接消息(关闭代码 1008
  • 目标连接失败
  • 代理节点不可用

示例:Python

示例:JavaScript

支持的子协议

所有子协议均透明中继 — 无需特殊配置:
  • Raw WebSocket (text/binary)
  • Socket.IO (engine.io transport)
  • SignalR (JSON + \x1e delimiter)
  • Centrifugo (JSON-RPC)
  • GraphQL-WS subscriptions

AMQP 消费者 (SSE)

通过代理网络从 RabbitMQ 代理流式传输消息,以 Server-Sent Events 形式交付。代理节点连接到消息代理,创建临时自动删除队列,将其绑定到指定的交换机,并将消息流式传回。

端点

请求体

身份验证也可以通过 X-API-Key 请求头提供,而不是使用 apiKey 请求体字段。

SSE 事件

connected — 代理节点已连接到消息代理,队列已创建并绑定:
message — 从队列接收到的消息:
error — 连接或消费错误(流结束):

示例:curl

示例:Python