Handle request

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
HarryPotter
User
Beiträge: 8
Registriert: Dienstag 5. November 2019, 16:07

Hallo zusammen :)

Ich habe mal eine Frage zu einem besseren Code Design.

Ich habe einen Socket Server erzeugt, der für mich anfragen handeln soll.

Per recv erhalte ich Anfragen.

Diese Anfragen werden aktuell bei mir über eine große Anzahl an If Elif und else gesteuert.

Als Beispiel:

If received == 'anfrage1':
Do_something()

Elif received == 'anfrage2':
Do_something_2()

Usw.

Aktuell gibt es 12 Anfragen, die bearbeitet werden.

Kann mir jemand sagen, wie man das besser steuern kann?

Ich habe mir mal das Command pattern angeschaut, dich das hat mir nicht wirklich weitergeholfen.

Es reicht mir auch ein: Schau dir das mal an :)

Danke euch :)

Viele Grüße :)
__deets__
User
Beiträge: 12288
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das command-Pattern ist aber schon der richtige Weg. Du registrierst fuer ein Kommando einen Handler fuer das Kommando. Je nach Geschmack explizit oder auch implizit mit meta-programmierungs-magie (was ich nicht mehr machen wuerde).

Code: Alles auswählen

def cmd_start(argument):
     ...

COMMANDS = {
    "start": cmd_start,
    "stop": cmd_stop,
    ...
}

...
command, argument = parse_incoming_command(data)
COMMANDS[command](argument)
HarryPotter
User
Beiträge: 8
Registriert: Dienstag 5. November 2019, 16:07

OK 🙂 dann war ich ja schon mal auf dem richtigen Weg.

Danke für die schnelle Antwort. Dann werde ich mir das nochmal genauer anschauen.
Antworten