Nachdem Du die Software erfolgreich installiert hast, kannst Du den Raspberry Server - SSLPi nach Deinen eigenen Bedürfnissen konfigurieren. Dies hat mit der Datei SSLPi.cfg zu erfolgen.
Die Konfigurationsdatei SSLPi.cfg muss im selben Verzeichnis wie die SSLserverPi_VersX.py gespeichert werden.
Die Konfiguration des Raspberry Server - SSLPi ist in zwei Abschnitte unterteilt.
Der Abschnitt [SETUP] kümmert sich um das allgemeine Verhalten des Servers.
Der Abschnitt [APP_CALLS] ist der Teil, wo Du Deine eigenen Anwendungen auf dem Raspberry Pi zu Aufruf benennst. Um Dir eine Idee zu geben, wie es gemacht wird, stellen wir Dir ein paar Beispiel Aufrufe zur Verfügung. Die dazugehörigen Anwendungen/Skripte sind im Verzeichnis "app" gespeichert.
Standardmäßig wird der Server auf Port 10023 hören.
Wenn Du die Port Nummer ändern möchtest, geh zum Abschnitt [SETUP] und ändere die Zeile
iPort:10023
Alles andere im Abschnitt [SETUP] kann unverändert bleiben, wenn Du den Server mit der Install.sh installiert hast.
Der Abschnitt [APP_CALLS] kümmert sich um die Konfiguration der Anwendungen, die vom Server auszuführen sind. Ein Aufruf wird durch einen Befehl, der von dem Client an den Server gesendet wird eingeleitet.
Eine APP_CALL kann aus einem oder mehreren Befehlen bestehen. Daher hat eine APP_CAll ein spezielles Format.
Das Format der APP_CALLS Konfigurationszeile ist wie folgt festgelegt:
Alle Einträge haben eine laufende Nummer = No. und einen Namen genannt Command_In.
Der Command_In ist der Befehls, wie er von einem Client aufgerufen wird.
Die Command_In ist der Name des APP_CALL's.
Ein APP_CALL wird vom Client an den Server mittels der Zeichenkette Command_In gesendet.
Ein Command_In / APP_CALL kann keinen oder einen Parameter haben!
Aufgrund der Tatsache, dass ein APP_CALL aus mehr als einen Befehl bestehen kann, müssen wir die Reihenfolge der Befehle festlegen, in der sie der Server aufrufen soll. Dies wird durch die Sequenznummer Sequenz# angegeben.
Der Wert der OS-Command kann nur "True" oder "False" sein. Im Falle eines OS-Befehls muss in der Spalte „App+Pfad“ nur den Befehl eingetragen werden.
Die Betriebssysteme übernimmt den Rest.
Die Spalte „App+Pfad“ muß den vollständigen Pfad und Namen des aufzurufenden Programms enthalte, außer es wird ein OS-Befehl verwendet.
"Test" ist ein spezielles Kommando, es ist ein interner Befehl, der eine Testnachricht zurück an den Client sendet. Dies muss auch in der nächsten Spalte „Type“ berücksichtigt werden.
Der Typ ist erforderlich, da je nach Befehlstyp der Server diese eigens behandelt.
Folgende Typen sind definiert:
Test Befehl (sendet eine Test Nachricht zurück) -- Wert 0
Change Dir (Verzeichnis Wechsel) -- Wert 1
das Verzeichnis wird Argument Section definiert
Befehl ohne einer Antwort (wie „rm“ ) -- Wert 2
Befehl mit einer Antwort (wie „ls“ oder „pwd“) -- Wert 3
Befehl mit Parameter und einer Antwort -- Wert 4
Befehl mit Parameter und ohne einer Antwort - - Wert 5
Change Dir (Verzeichnis Wechsel) -- Wert 6
Befehl asynchron ausführen --Wert 7
wobei das Verzeichnis als Parameter angegeben wird
Wie Du siehst, sind bereits 8 Typen definiert.
Es gibt vier Gruppen.
1) Wert 0: Die Test-Befehl, der eine interne Testfunktion ist
2) Wert 1 bis 3: sind Befehle, die ohne Parameter abgearbeitet werden
3) Wert 4-6: sind Befehl, die Parameter seitens des Client erwarten
4) Wert 7: Befehl wird asynchron ausgeführt. Programm wird auf dem Raspberry aufgerufen und es ist nicht vorhersehbar wann eine Rückmeldung kommt. Dies wird für sogenannte Push Notifications genutz.
Wie schon erwähnt kann ein APP_CALL (Command_In) aus mehr als einem Befehle bestehen.
Wenn nun ein APP_CALL mit dem Command In mit einem Parameter an den Server gesendet wird, muss definiert werden, welcher Befehl des APP_CALL's auf den Parameter benötigt.
Ich glaube, wenn man sich die Beispiele in der Datei SSLPi.cfg ansieht wird es etwas klarer.
Info:
Alle Befehle eines APP_CALL eines Clients werden in einem Durchlauf ausgeführt. Der Server unterbricht währenddessen nicht, um eine andere Anfragen eines anderen Clients auszuführen. Damit ist gewährleistet, dass Sie Dateien editieren, IOs setzen oder Verzeichnisse wechseln können, ohne eine Störung einer anderen Client Anfrage.
Der Success Return gibt an, welchen Wert der Server erhält, wenn der Befehl erfolgreich verarbeitet wurde.
Normalerweise wirst Du 0 oder 1 eintragen. Manchmal kann man jedoch nicht vorhersagen, was Du erhalten wirst, aber Du kannst definieren, was Du nicht bekommen willst. In diesem Fall verwende die Antworten String {!} ("= Darf nicht") mit der unerwünschten Antwort (zum Beispiel: {!} ERROR).
Die letzten Spalte ist für Argumente. Wenn ein Befehl einen weiteren Parameter benötigt, ist dieser in dem Argument Spalten zu definieren. Zum Beispiel "ls -l" wird mit "ls" in der Spalte „App+Pfad“ und "-l" als Argument eingetragen.