简体   繁体   English

为什么我不能在 function 中使用 websocket

[英]Why can't I use websocket in a function

When I try using websocket like this当我尝试像这样使用 websocket

ws = websocket.WebSocketApp(f"wss://fstream.binance.com/ws/{symbol}@aggTrade",on_message=on_message,on_close=on_close)
ws.run_forever()

it works fine but for some reason I want to use it like this它工作正常但出于某种原因我想像这样使用它

def func(symbol):
    ws = websocket.WebSocketApp(f"wss://fstream.binance.com/ws/{symbol}@aggTrade",on_message=on_message,on_close=on_close)
    ws.run_forever()
func("btcusdt")

but it's not working why can't I use websocket in func how can I do that但它不起作用为什么我不能在 func 中使用 websocket 我该怎么做

This (minor change to OP's code due to SSL issue) works perfectly on Python 3.9.9这(由于 SSL 问题对 OP 代码的微小更改)在 Python 3.9.9 上完美运行

import websocket
import ssl


def on_msg(_, msg):
    print(msg)


def on_err(_, err):
    print(err)


def func(symbol):
    ws = websocket.WebSocketApp(
        f"wss://fstream.binance.com/ws/{symbol}@aggTrade", on_message=on_msg, on_error=on_err)
    ws.run_forever(sslopt={"cert_reqs": ssl.CERT_NONE})


if __name__ == '__main__':
    func('btcusdt')

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM