#python #websocket
Вопрос:
Когда я пытаюсь использовать websocket, как это
ws = websocket.WebSocketApp(f"wss://fstream.binance.com/ws/{symbol}@aggTrade",on_message=on_message,on_close=on_close) ws.run_forever()
это работает нормально, но по какой-то причине я хочу использовать его так
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")
но это не работает, почему я не могу использовать websocket в функции, как я могу это сделать
Комментарии:
1. «это не работает» — недостаточно четкое описание вашей проблемы. Пожалуйста, будьте более конкретны.
2. Это буквально ничего не делает, как будто я даже не вызывал функцию, просто ждет @ThierryLathuille
Ответ №1:
Это (незначительное изменение кода OP из-за проблемы с SSL) отлично работает на 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')
Комментарии:
1. Ваш ответ, вероятно, имел бы большую ценность, если бы вы могли добавить объяснение того, почему это необходимо для запуска кода операции в функции vs на верхнем уровне.
2. В этом нет необходимости . Мой ответ просто демонстрирует, что с версией Python, которую я использую, это работает, в то время как у операции, похоже, возникают проблемы при запуске приложения WebSocket в функции
3. Позвольте мне кое-что исправить, прежде всего, мой вопрос отсутствовал, websocket можно использовать в функции, она работала, и я не понял, что в первую секунду, когда я вставляю таймер в функцию on_message, он работает, когда код websocket отсутствует в функции, но когда я пробую его с помощью кодов websocket в функции, он вообще не работает @DarkKnight
4. @WebSocket Пользователь, возможно, вам следует опубликовать репрезентативный образец вашего кода, который не работает
5. Я исправил свои проблемы, я сам благодарю вас за всю вашу помощь