websocket kann keine daten empfangen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
anonym44

Ich verstehe nicht, was los ist, ich möchte einen Websocket-Klienten programmieren, allerdings kann ich keine Daten empfangen

Code: Alles auswählen

import websocket
websocket.enableTrace(True)


def on_data(wsapp, data, data_type, is_continue=None):
    print("###### on_data", data)
    
def on_message(wsapp, message):
    print("###### on_message", message)

    
def on_error(wsapp, err):
    print("Got a an error: ", err)



def on_close(wsapp, close_status_code, close_msg):
    # Because on_close was triggered, we know the opcode = 8
    print("on_close args:")
    if close_status_code or close_msg:
        print("close status code: " + str(close_status_code))
        print("close message: " + str(close_msg))

def on_open(wsapp):
    #wsapp.send(json.dumps(headers))
    print("connection opened.")
    
    #wsapp.send(msg.decode("latin-1"))
    
    
    
    return


server = "ws://127.0.0.1:9998"
    
if __name__ == "__main__":

    wsapp = websocket.WebSocketApp(server, header=headers, on_message=on_message, on_error=on_error, on_open=on_open, on_close=on_close, on_data=on_data)
    print("wsapp:", wsapp)
    #
    
    wsapp.run_forever()
    

Ich habe schon gedacht, das liegt am Server, ich habe dann einen eigenen Websocket server programmiert, aber es funktioniert auch nicht. - Nur der Handschlag wird empfangen, danach wird nichts mehr empfangen.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Amerika_befreie_uns,

der Code, den du hier gepostet hast funktioniert nicht, weil "headers" nicht definiert ist. Das müsste bei dir auch sofort abbrechen.
Wenn du das entfernst, wird der Client funktionieren und sich mit dem Server verbinden.

Jetzt kommt es natürlich darauf an wie der Server programmiert ist. So wie du den Client programmiert hast wartet der nur auf Daten vom Server. Wenn der Server nichts sendet passiert auch nichts.
Da dein Client eben auch nichts sendet wartet der Server wahrscheinlich auch vergebens auf Daten.
anonym44

rogerb hat geschrieben: Samstag 2. Oktober 2021, 17:34 @Amerika_befreie_uns,

der Code, den du hier gepostet hast funktioniert nicht, weil "headers" nicht definiert ist. Das müsste bei dir auch sofort abbrechen.
Wenn du das entfernst, wird der Client funktionieren und sich mit dem Server verbinden.

Jetzt kommt es natürlich darauf an wie der Server programmiert ist. So wie du den Client programmiert hast wartet der nur auf Daten vom Server. Wenn der Server nichts sendet passiert auch nichts.
Da dein Client eben auch nichts sendet wartet der Server wahrscheinlich auch vergebens auf Daten.

headers kann ignoriert werden.
Ich kann einfach nichts empfangen, ich frickel schon eine Woche daran rum.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Websockets funktionieren im allgemeinen. Es ist also was bei dir. Ohne das gesamte system zu sehen, und ohne Code, der auch läuft, ist das auch alles, was man dazu sagen kann.
anonym44

__deets__ hat geschrieben: Samstag 2. Oktober 2021, 18:28 Websockets funktionieren im allgemeinen. Es ist also was bei dir. Ohne das gesamte system zu sehen, und ohne Code, der auch läuft, ist das auch alles, was man dazu sagen kann.

Code: Alles auswählen

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sun Oct  3 01:35:58 2021

@author: dev
"""
import websocket
websocket.enableTrace(True)


def on_data(wsapp, data, data_type, is_continue=None):
    print("###### on_data", data)
    
def on_message(wsapp, message):
    print("###### on_message", message)

    
def on_error(wsapp, err):
    print("Got a an error: ", err)



def on_close(wsapp, close_status_code, close_msg):
    # Because on_close was triggered, we know the opcode = 8
    print("on_close args:")
    if close_status_code or close_msg:
        print("close status code: " + str(close_status_code))
        print("close message: " + str(close_msg))

def on_open(wsapp):
    #wsapp.send(json.dumps(headers))
    print("connection opened.")
    
    #wsapp.send(msg.decode("latin-1"))
    
    
    
    return


server = "ws://127.0.0.1:9998"
    
if __name__ == "__main__":

    wsapp = websocket.WebSocketApp(server, on_message=on_message, on_error=on_error, on_open=on_open, on_close=on_close, on_data=on_data)
    print("wsapp:", wsapp)
    #
    
    wsapp.run_forever()
    
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das macht’s klar. Der Server ist schuld. Wer auch immer den geschrieben hat & wie der aussieht.
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

Ich kann einfach nichts empfangen, ich frickel schon eine Woche daran rum.
Man muss halt auf beide Seiten achten. Wie gesagt: Erstmal baut dein Client nur die Verbindung auf. Danach sendet dein Client nichts mehr. Manche Server warten eben erstmal darauf, dass der Client was sendet, bevor sie was zurücksenden.
Was ist das denn für ein Server?
Antworten