Was tun, wenn socket-client nicht empfangen kann

  • Vorweg: es geht um ein Tool, das viele Clients bedient und nicht auf einen warten kann. Es geht also um speed.


    Ich bin gerade am rätseln, was man am besten macht, wenn
    - ich einen Server laufen habe
    - Client verbindet
    - ich (Server) dem Client Pakete schicke, dieser aber "lahmt" und -
    - ich nicht mehr senden kann, da Client überläuft (socket würde blockieren bis Timeout greift oder Senden wieder möglich ist)


    Alle folgenden Pakete droppen, bis das Senden an den Client wieder möglich ist,
    oder Verbindung zum Client schließen?
    (Oder irgendwas, das mir nicht einfällt =)


    Ich denke Pakete droppen wäre falsch, denn dann verpasst der Client evtl wichtige Pakete und "kommt nicht mehr klar".
    Weiß auch grad nicht wie ich danach im Netz suchen soll :D


    EDIT:
    so kann man sich das in etwa vorstellen:

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von cottton ()

  • Das könnte enorm viel Speicher verbrauchen (Endlos-Script, ... soll hunderte Clients bedienen können).
    Ich müsste auch alle Pakete zwischenspeichern die nach dem ersten Paket kommen, um die Reihenfolge einzuhalten.


    Im Netz findet man viel über Protokolle - was wie wann passieren muss. Aber dazu find ich nix :/
    Ach ja - bei den Clients geht es um Browser (Websocket) falls es entscheidend ist.

  • Ich denke da kommt es drauf an was in den Paketen drinsteckt.


    Bei sovielen Paketen und Clients klingt es danach, als ob die Daten die in den einzelnen Paketen stecken irgendwie zusammenhängen/aufeinander aufbauen.
    Wenn dem so ist, hilft Extra-/Interpolation oder Prediction auf dem Client und auf dem Server zumachen.


    Generell wirst du eine Schwelle benötigen, ab der du die Verbindung zum Client schließt - wo die liegt musst du letztendlich selber abschätzen und testen.