import traceback import websocket import threading from logger_config import logger from data_processing import on_message_depth, stop_event # Binance WebSocket API URL SYMBOL = "ethfi" + "usdt" SOCKET_DEPTH = "wss://fstream.binance.com/stream?streams=" + SYMBOL + "@depth20@100ms" def on_error(_ws, error): traceback.print_exc() # 打印完整的错误堆栈信息 # raise error # 重新抛出错误 def on_open(_ws): logger.info("### binance_ws opened ###") # Create a WebSocket app ws_depth = websocket.WebSocketApp(SOCKET_DEPTH, on_message=on_message_depth, on_error=on_error, on_open=on_open) # 定义要传递给 run_forever 的参数 http_proxy_host = "127.0.0.1" http_proxy_port = 7890 proxy_type = "http" depth_thread = threading.Thread(target=ws_depth.run_forever, kwargs={ 'http_proxy_host': http_proxy_host, 'http_proxy_port': http_proxy_port, 'proxy_type': proxy_type }) def start_ws_clients(): depth_thread.start() def stop_all_threads(): stop_event.set() depth_thread.join()