Server Socket / Register Variable / mehrere Clients

Hallo,

ich habe ein paar Fragen zum korrekten Umgang mit der Register Variable in Verbindung mit einem Server Socket, der mehrere Client-Verbindungen unterstützen soll.

Ich ziehe grundsätzlich die IP und den Port in Kombination als Identifikationsmerkmal der jeweiligen Clientverbindung heran.

Um Daten zu puffern nutze ich den Puffer der RegVar, allerdings organisiere ich ihn als JSON-String, um Teildatenpakete mehrerer Clientverbindungen nach Verbindung geordnet im Puffer verwalten zu können. Spricht etwas dagegen oder gibt es eine schlauere Lösung?

Ich nutze keine Semaphore, gehe also davon aus dass die RegVar unter keinen Umständen mehrere Instanzen des Skripts gleichzeitig ausführt. Korrekt?

„Sessions“ verwalte ich zudem als Variablen. Darin speichere ich, ebenfalls als JSON-String, so Dinge wie den letzten Zugriffs-Zeitstempel und weitere statische Zustandsinformationen. Der Ident der Variablen ist ein Identifikations-String aus Client-IP und Client-Port, um die Session für eine Verbindung später wiederfinden zu können.

Spricht etwas gegen diese Vorgehensweise? Ich weiß ja, dass ich keine RegVar-Daten in Variablen puffern soll, aber das mit den Sessions sollte kein Problem sein, oder?

Bin sehr interessiert an konstruktiver Kritik!

Ach ja, noch etwas: Ich nehme mal an, so Dinge wie Verbindungsaufbau und -abbruch kann ich bei Server Sockets weder detektieren, noch serverseitig steuern, oder?

Danke & VG

Richtig, aktuell geht das leider noch nicht.

Dein Vorgehen ist auch okay, jedoch kannst du dir das alles sparen, wenn du das hier nutzt :slight_smile:
IPSNetwork/ClientSplitter at master · Nall-chan/IPSNetwork · GitHub
Dann hast du pro Client eine RegVar und somit getrennte Buffer pro Client für unvollständige Datenpakete.
Als Script kann immer das gleiche benutzt werden, da die unterschiedlichen IDs der RegVars ja als Systemvariable von IPS zur Verfügung stehen.

Michael

Interessant, dieser Splitter. Aber ich verstehe es so, dass der nur funktioniert wenn es eine festgelegte Anzahl an Clients mit bekannten IP-Adressen gibt? Das ist bei dem was ich mache so nicht gegeben bzw. ich möchte diese Beschränkung ungern haben.

Die IPs müssen halt bekannt/statisch sein.
Die Anzahl selber ist ja egal, kannst ja so viele anlegen wie du willst.
Sicherlich nimmt es etwas von der Dynamik da man jedesmal eine neue Instanz anlegen muss, aber auch dein Script muss jetzt aktuell schon auf einer Grundlage die Daten verarbeiten.
So oder so musst du die empfangene Daten ja spätestens beim schreiben in IPS-Variablen an irgendwas festmachen.

Michael