Dokumentation
IPS_GetConnectionList
array IPS_GetConnectionList ()
Rückgabewert
Ein Array mit einem Eintrag je Verbindung. Die Reihenfolge der Einträge ist nicht garantiert. Der Aufbau ist in der Beschreibung aufgeführt.
Beschreibung
Diese Funktion ist nur für den internen Gebrauch vorgesehen und kann sich jederzeit ohne Ankündigung ändern oder entfallen.
Die Funktion liefert die Verbindungen, über welche der Webserver Daten an Clients sendet. Das sind WebSocket-Verbindungen (z.B. Nachrichten an Visualisierungen) und Proxy-Verbindungen (weitergeleitete Videostreams). Für jede dieser Verbindungen führt Symcon eine Sendewarteschlange.
| Schlüssel | Typ | Beschreibung |
|---|---|---|
| Remote | string | IP-Adresse und Port des Clients, z.B. "192.168.1.20:52814" |
| ConnectionType | string | "WebSocket" oder "Proxy" |
| ConnectedSince | int | Unix-Zeitstempel, zu dem die erste Nachricht an die Verbindung eingereiht wurde |
| Error | bool | TRUE, wenn die Verbindung wegen einer überlaufenden Warteschlange als fehlerhaft markiert wurde |
| QueueSize | int | Anzahl der Nachrichten, welche in der Warteschlange auf die Übertragung warten |
| QueueBytes | int | Größe der wartenden Nachrichten in Bytes |
| TransferredCount | int | Anzahl aller eingereihten Nachrichten |
| TransferredBytes | int | Größe aller eingereihten Nachrichten in Bytes |
| LastSuccessfulQueueing | int | Unix-Zeitstempel der zuletzt eingereihten Nachricht |
| LastSuccessfulTransfer | int | Unix-Zeitstempel der zuletzt abgeschlossenen Übertragung |
Eine Verbindung wird als fehlerhaft markiert und erhält keine weiteren Nachrichten, wenn ihre Warteschlange mehr als 65.536 Nachrichten oder 32 MB enthält oder seit 5 Minuten keine Übertragung abgeschlossen wurde. Wurde 10 Sekunden lang keine Übertragung abgeschlossen, genügen bereits mehr als 32.768 Nachrichten oder 8 MB. Die angegebenen Grenzen sind die Standardwerte.
Einträge werden erst entfernt, wenn eine Stunde lang keine Übertragung stattgefunden hat. Die Liste kann daher auch bereits geschlossene Verbindungen enthalten. Die Anzahl der aktuell offenen Verbindungen liefern IPS_GetActiveWebSocketConnections und IPS_GetActiveProxyConnections.
Beispiel
foreach (IPS_GetConnectionList() as $connection) {
printf("%s (%s): %d Nachrichten wartend, %d Nachrichten gesamt%s\n", $connection['Remote'], $connection['ConnectionType'], $connection['QueueSize'], $connection['TransferredCount'], $connection['Error'] ? ', fehlerhaft' : '');
}
/* liefert z.B.:
192.168.1.20:52814 (WebSocket): 0 Nachrichten wartend, 1532 Nachrichten gesamt
*/