Seite 1 von 1

Websocket-Client -- Problem mit Timeout Ping/Pong

Verfasst: Montag 19. April 2021, 14:38
von CSchilling
Grüßt euch,

als Programmier-/ und Pythonneuling stolper ich regelmäßig über Hindernisse in meinem Projekt. Ich schreibe meinen Code derzeit mit PyCharm.

Das Problem welches mich derzeit beschäftigt ist folgendes:
Ich möchte mit Hilfe des Websocket-Client (Documentation siehe Link) Kursdaten von Binance (Websocket Documentation siehe Link) auslesen und verarbeiten. Das klappt auch soweit.
Da ich jedoch nicht vollständig verstehe, was der Websocket-Client anstellt und welche Parameter ich wie dort einbringen muss, bekomme ich regelmäßig einen Timeout mit der Fehlermeldung "Timeout PING/PONG".....
Es ist mir wichtig das der Websocketrequest für immer läuft, ohne das ich einen Timeout erhalte und das Programm still steht, denn mit den dort ausgelesenen Daten arbeitet ein seperaters Python Programm.

Der unten dargestellte Code zeigt lediglich den Websocketrequest an. In der on_message Funkition findet die Verarbeitung der eingehenden message statt, den Codeblock habe ich hier aber vorerst, der Übersichtlichkeit halber, raus gelassen.

Wie kann ich nun verhindern, dass meine Verbindung geschlossen wird?

Code: Alles auswählen

import websocket

websocket.enableTrace(True)
socketurl_combined = "wss://fstream.binance.com/stream?streams=btcusdt_perpetual@continuousKline_1m/btcusdt_perpetual@continuousKline_5m"


def on_message(wsapp, message):
    print(message)
    # [.....Code below.....]


def on_open(wsapp):
    print('### ONLINE ###')


def on_close(wsapp):
    print('### OFFLINE ###')


def on_error(wsapp, error):
    print(error)


wsapp = websocket.WebSocketApp(socketurl_combined,
                               on_open=on_open,
                               on_message=on_message,
                               on_error=on_error,
                               on_close=on_close)

wsapp.run_forever(ping_interval=60, ping_timeout=10)
Über Hilfe würde ich mich freuen!

Besten Dank an alle und eine schöne Woche.

Grüße Chris

Re: Websocket-Client -- Problem mit Timeout Ping/Pong

Verfasst: Montag 19. April 2021, 14:59
von Sirius3
Wenn Du keinen Timeout willst, darfst Du halt keinen ping_timeout definieren. Da ist dann halt die Frage, ob die Verbindung noch funktioniert.
Nichtsdestotrotz muß Dein Programm auch mit Verbindungsabbrüchen umgehen können.

Re: Websocket-Client -- Problem mit Timeout Ping/Pong

Verfasst: Montag 19. April 2021, 15:08
von CSchilling
Alles klar, danke für die Rückmeldung.

Dann stellt sich mir die Frage, wie ich automatisch eine neue Verbindung aufbauen kann? Bisher habe ich das Programm manuell neu ausgeführt, nachdem mir aufgefallen war, dass es die Verbindung verloren hat.
Im Netz findet man diverse Antworten zu den Themen Timeout, jedoch steig ich noch nicht hinter deren Code, ob dieser auch meine Problematik behebt.