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

无法连接bitFlyer WebSocket求助(附Python代码)

解决bitFlyer WebSocket连接问题

我看你连接其他加密货币交易所的WebSocket都很顺利,唯独bitFlyer这里卡壳了,咱们一步步来排查修复这个问题。从你给出的代码片段来看,主要有几个明显的问题需要调整:

可能的问题点

  • WebSocket端点未正确指定:bitFlyer有固定的官方WebSocket端点,你大概率漏写了完整地址
  • 代码逻辑顺序错误:while True放在了if __name__ == "__main__"代码块之外,会导致程序逻辑混乱
  • WebSocket对象初始化不完整:代码里的ws ...部分缺失了创建连接的关键代码

修正后的完整代码

import websocket
import json
import time

def on_message(ws, message):
    msg = json.loads(message)
    print(msg)

def on_error(ws, error):
    print(f"错误信息: {error}")

def on_close(ws):
    print("### 连接已关闭 ###")

def on_open(ws):
    print("### 连接已建立 ###")
    # 按照bitFlyer要求的格式发送订阅请求
    subscribe_msg = json.dumps({
        "method": "subscribe",
        "params": {
            "channel": "lightning_executions_FX_BTC_JPY"
        }
    })
    ws.send(subscribe_msg)

if __name__ == "__main__":
    # 打开调试追踪,方便排查连接细节(上线前可注释)
    websocket.enableTrace(True)
    
    # bitFlyer官方WebSocket端点
    bitflyer_ws_url = "wss://ws.lightstream.bitflyer.com/json-rpc"
    
    # 初始化WebSocket应用
    ws = websocket.WebSocketApp(
        bitflyer_ws_url,
        on_open=on_open,
        on_message=on_message,
        on_error=on_error,
        on_close=on_close
    )
    
    # 可选:添加重连逻辑,避免单次连接断开后程序直接退出
    while True:
        try:
            ws.run_forever()
        except Exception as e:
            print(f"连接中断,正在重试: {e}")
            time.sleep(5)

额外调试建议

  • 确认订阅通道格式:bitFlyer的订阅通道格式为lightning_executions_{产品代码},你用的FX_BTC_JPY是正确的,若订阅其他产品需注意格式匹配
  • 查看调试日志:打开websocket.enableTrace(True)后,能看到连接握手、报文收发的详细过程,方便定位是连接阶段还是订阅阶段出了问题
  • 检查网络环境:部分地区可能需要确保能正常访问bitFlyer的WebSocket端点,排除防火墙或网络代理的影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:20:14