CX_WEB_SERVICE_MANAGER
158269
Klassenhierarchie
- CX_CLASS
- CX_WEB_SERVICE_MANAGER
Beschreibung:
Klasse des WebService-Managers.
Um eine HTTP-Schnittstelle für ClassiX anbieten zu können, wird der WebService-Manager eingesetzt. Dieser wird über die Funktion "Start" gestartet und leitet dann eingehende HTTP-Requests an die entsprechenden Messages weiter. Die Message kann nun aus dem auf dem Stack liegenden CX_HTTP_REQUEST-Objekt die Informationen gewinnen, die sie benötigt, um das benötigte CX_HTTP_RESPONSE-Antwortobjekt zu erzeugen. Um den Webservice über HTTPS zu betreiben, muss useSSL TRUE sein und die Umgebungsvariablen CX_HTTPS_KEY_FILE und CX_HTTPS_CERT_FILE den Dateipfad zu einem gültigen privaten Schlüssel und Zertifikat enthalten.
Um den Namen der anzusprechenden Message zu erhalten, wird der Pfad der angefragten URL durch "_" und die Methode des Requests erweitert. Für ein Beispiel siehe die Dokumentation, der CX_HTTP_REQUEST-Klasse.
Der WebService-Manager ist zusätzlich für den Verbindungsaufbau zum MorphIT-Server zuständig und bietet Methoden an, um den Status dieser Verbindung abzufragen und in gewissem Umfang mit dem MorphIT-Server zu kommunizieren.
MorphIT-Status
Hier sind die Status-Methoden für die MorphIT-Verbindung zum besseren Verständnis in einer Matrix dargestellt. Als Referenz für die unterschiedlichen Zustände, in der sich eine ClassiX-Instanz befinden kann, wird das folgende Bild aus dem MorphIT-Überblick verwendet. Die Farben der zweiten Spalte verdeutlichen, auf welches Element aus der Grafik sich die Zeile bezieht.
Zustand | HasMorphITConnection | IsMorphITClientConnected | IsMorphITWebService | IsStaticMorphIT | |
---|---|---|---|---|---|
ClassiX-Prozess gerade gestartet |
FALSE | FALSE | FALSE | FALSE | |
Auf Vorrat gestartets ClassiX (ohne Client) | TRUE | FALSE | FALSE | TRUE | |
Webservice MorphIT-Instanz | TRUE | FALSE | TRUE | TRUE | |
MorphIT-ClassIX-Instanz (Client verbunden) | TRUE | TRUE | FALSE | TRUE |
Wird der MorphIT-Server nicht im statischen Modus gestartet, dann gibt es folgende mögliche Kombinationen:
Zustand | HasMorphITConnection | IsMorphITClientConnected | IsMorphITWebService | IsStaticMorphIT | |
---|---|---|---|---|---|
ClassiX-Prozess gerade gestartet (noch keine Verbindung zum MorphIT-Server) |
FALSE | FALSE | FALSE | FALSE | |
Auf Vorrat gestartetes ClassiX (ohne Client) | TRUE | FALSE | FALSE | FALSE | |
MorphIT-ClassiX-Instanz (Client verbunden) | TRUE | TRUE | FALSE | FALSE | |
Natives ClassiX mit WebWidgets | TRUE | FALSE | FALSE | FALSE |
Wird ein ClassiX nur nativ und ohne MorphIT-Server betrieben (also auch ohne WebWidgets), dann entspricht dies dem ersten Fall (alles FALSE).
Funktion | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|
ExtractTextFromHtml |
STRING | STRING | Filtert den eigentlichen Text aus einem HTML-Dokument |
URLEncode 192935 |
STRING | STRING | Kodiert URLs gemäß dem Percent-Encoding |
URLDecode 192935 |
STRING | STRING | Dekodiert kodierte URLs |
XMLEncode 192935 |
STRING | STRING | Kodiert nach XML-Standard Zeichen in Texten zu HTML-Entitäten |
XMLDecode 192935 |
STRING | STRING | Dekodiert Texte mit HTML-Entitäten, sowie Unicode-Codepoints, zu einem regulären Text |
WebService-Funktionalität | |||
Start | Startet den WebService-Manager und bindet ihn an den spezifizierten Port | ||
Stop | Stoppt den WebService-Manager | ||
IsRunning | INTEGER | Liefert TRUE, wenn der Server läuft, ansonsten FALSE | |
SetReceiveMessage | INTEGER | Setzt die Nachricht, die gesendet wird, wenn eine Anfrage eingeht. (NULL = keine Nachricht senden) Die gesendete Nachricht erhält auf dem Stack das CX_HTTP_REQUEST-Objekt. Wird dieses verändert, so erhält auch die eigentliche Nachricht das geänderte Request-Objekt |
|
SetSendMessage | INTEGER | Setzt die Nachricht, die vor dem Senden der Antwort gesendet wird. (NULL = keine Nachricht senden) Die gesendete Nachricht erhält auf dem Stack das CX_HTTP_RESPONSE-Objekt, welches als Antwort zurückgeschickt wird, sobald die Verarbeitung der registrierten Nachricht abgeschlossen ist. |
|
SendRequest 184192 |
CX_HTTP_REQUEST | CX_HTTP_RESPONSE | Sendet einen HTTP-Request mit den im Request-Objekt angegebenen Parametern und liefert als Ergebnis ein Response-Objekt. |
MorphIT-Funktionalität | |||
ClearMorphITProperties 188438 |
Löscht alle gesetzten MorphIT-Properties. | ||
CloseMorphITConnection 186192 |
Schließt eine offene Websocket-Verbindung zum MorphIT-Server. Die Instanz wird weiter vom Launcher geführt und sollte der Server heruntergefahren werden, dann wird die Instanz vom Launcher beendet. |
||
DeregisterMorphITConnection 197830 |
Ähnlich wie CloseMorphITConnection mit dem Unterschied, dass der MorphIT-Server die Instanz nach diesem Befehl nicht mehr trackt und eine Launcher-Instanz auch nicht über den Launcher beendet wird. | ||
ExportView 228710 |
CX_WIDGET, INTEGER | CX_JSON_OBJECT | Exportiert den aktuellen Zustand der Oberfläche im MorphIT-JSON-Format. |
GetMorphITProperty 202211 |
STRING | STRING | Liefert den aktuellen Wert einer per SetMorphITProperty gesetzten MorphIT-Property. Ist die Property nicht gesetzt, wird ein leerer String zurückgegeben. |
HasMorphITConnection 186192 |
INTEGER | Liefert TRUE, falls sich ClassiX erfolgreich mit dem MorphIT-Server verbinden und registrieren konnte. | |
HasMorphITProperty 202211 |
STRING | INTEGER | Liefert TRUE, falls die angegebene MorphIT-Property aktuell gesetzt ist. |
IsMorphITClientConnected 189884 |
INTEGER | Liefert TRUE, falls sich ClassiX erfolgreich mit dem MorphIT-Server verbinden und registrieren konnte und sich ein MorphIT-Client (Browser) mit dieser ClassiX-Instanz verbunden hat. | |
IsMorphITWebService 195636 |
INTEGER | Liefert TRUE, falls sich der MorphIT-Server im statischen Modus befindet und diese ClassiX-Instanz als WebService-Instanz verwendet wird. | |
IsStaticMorphIT 195942 |
INTEGER | Liefert TRUE, falls der Client eine MorphIT-Verbindung hat (HasMorphITConnection) und der MorphIT-Server im statischen Modus läuft. | |
LaunchDedicatedClassiX 204654 |
STRING, STRING, STRING, CX_JSON_OBJECT | INTEGER | Startet eine dedizierte ClassiX-Instanz auf dem vorgegebenen MorphIT-Launcher. |
MapMorphITAssetPath 224640 |
STRING | STRING | Übersetzt einen lokalen Pfad in einen MorphIT-Server-Pfad |
MorphITServerCommand 205954 4.2.0 |
CX_JSON_OBJECT | CX_JSON_OBJECT | Sendet einen Server-Befehl zum verbundenen MorphIT-Server und legt die Antwort wieder auf den Stack. |
OpenMorphITConnection 186192 |
INTEGER, STRING, INTEGER, STRING | Öffnet eine Websocket-Verbindung zum MorphIT-Server. Die Parameter definieren den Verbindungsendpunkt. | |
RemoveMorphITProperty 188438 |
STRING | Löscht eine gesetzte Property unter dem angegebenen Namen wieder. | |
RequestMorphITBinding 204654 |
CX_JSON_OBJECT | NULL | STRING | Meldet den Start einer dedizierten ClassiX-Instanz beim MorphIT-Server an und benachrichtigt einen evt. verbundenen MorphIT-Client. |
SetMorphITProperty 188438 |
STRING, STRING | Setzt eine Property, welche bei jedem Laden von MorphIT an den Web-Browser übertragen und dort interpretiert werden kann. | |
SkipNextViewExport 201506 |
Überspringt den nächsten Export der Oberfläche zu MorphIT hin. |
Datenfeld | Typ | Standartwert | Kurzbeschreibung |
---|---|---|---|
port | INTEGER | 443 | Legt fest, an welchen Port sich der WebService-Manager binden wird. Dies muss gesetzt werden, bevor "Start" aufgerufen wird. |
useSSL | CHAR | TRUE | Wenn TRUE, dann wird der WebService als HTTPS-Service gestartet, ansonsten wird er als HTTP-Service gestartet |
receiveMessage | INTEGER | NULL | Die Nachricht, die gesendet wird, wenn eine Anfrage am Webservice eingeht. |
sendMessage | INTEGER | NULL | Die Nachricht, die gesendet wird, wenn eine Antwort an den Client gesendet wird. |