You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于libwebsockets的Binance Futures WebSocket连接失败问题求助

解决方案

1. 修正WebSocket端口号

Binance期货的WSS服务默认使用443端口,而非你代码中的9443。修改AddProtocol的端口参数:

ws.AddProtocol("futures", "fstream.binance.com", "/ws", 443, func);

2. 直接连接指定主题的URL(更简单的验证方式)

既然你用Chrome插件访问wss://fstream.binance.com/ws/btcusdt@ticker能成功,可以跳过发送订阅指令,直接把路径设为/ws/btcusdt@ticker,连接后会自动推送数据,无需额外发送订阅消息:

// 修改AddProtocol的路径参数
ws.AddProtocol("futures", "fstream.binance.com", "/ws/btcusdt@ticker", 443, func);

// 移除订阅代码,因为路径已包含目标主题
auto runAfterConnection = [&ws](void) ->void {
    // 此处无需执行任何操作
};

3. 验证TLS配置(若端口修正后仍失败)

该libwebsockets封装库可能需要明确启用TLS支持。检查库的初始化逻辑,确保创建WebSocket上下文时开启了TLS选项,部分封装库会默认禁用WSS,需手动开启。

4. 检查订阅消息格式(若保留主动订阅方式)

如果坚持使用发送订阅指令的方式,确认以下细节:

  • 主题名称btcusdt@ticker大小写正确(Binance接口要求小写)
  • JSON格式无语法错误,比如引号、逗号位置正确
  • 尝试开启库的日志功能,查看连接过程中是否有错误输出(比如连接失败原因、订阅指令被拒绝的提示)

优先尝试第二种直接指定主题路径的方式,这种方式逻辑更简单,能快速验证连接是否正常。


内容的提问来源于stack exchange,提问作者Tiberius

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 21:17:17