Ein Java Server der Funktionen für die SOl-Connect App als Pseudo API bereitstellt. Versichedene Funktionen können hier eingesehen werden.
https://github.com/floodoo/SOL-Connect/
Der Server besteht hauptsächlich aus zwei .jar Dateien. Die Installation erstellt 4-5 Dateien.
instancelog.log
(Log Datei, automatisch generiert)main.conf
(Konfigurationsdatei, automatisch generiert, veränderbar)Main.jar
(Einstiegspunkt, muss manuell ausgeführt werden)server-hook.jar
(Automatischer download aus GitHub releases)backup.tmp
(Backupdatei bei einemserver-hook.jar
update)
Die Main.jar
Datei ist das Hauptprogramm welches manuell gepflegt werden muss.
Es stellt grundlegende Administrationsbefehle zur Verfügung und kümmert sich darum,
dass die server-hook.jar
immer auf dem neuesten Stand ist.
Das Hauptprogramm selber sollte selten Updates benötigen. (-> Sektion Updating)
Die server-hook.jar
kümmert sich um alles um den Server am laufen zu halten.
Sie ist nicht selbst ausführbar.
Sie lässt sich mittels der Main.jar konfigurieren, ausführen und updaten.
Jeder GitHub release beinhaltet zwei Binärdateien:
Main.jar
(Das Hauptprogramm wie oben beschrieben)server-hook.jar
(Die Server Datei)
Um den Server zum laufen zu bringen reicht es die Main.jar
herunterzuladen und auszuführen.
Konfigurationsdateien werden automatisch generiert.
Beim ersten start wird eine Fehlermeldung kommen:
.../server-hook.jar nicht gefunden oder ist ein Ordner. Überprüfe main.conf oder führe den Befehl 'update' aus!
Hier reicht es den update
Befehl auszuführen.
Um die Main.jar
auszuführen folgenden Befehl im Ordner eingeben wo die Main.jar gedownloaded wurde:
java -Xmx1G -jar Main.jar
Die administrator Konsole ermöglicht es dir Befehle der Main.jar
oder auch des Hooks auszuführen.
Du erkennst sie an zwei >>
ein der Konsole.
Um eine Liste von Befehlen zu erhalten, gib help
ein.
>>help
help Gibt diese Seite aus.
uninstall-list Listet alle Installierten Dateien auf.
uninstall-delete Löscht alle Programm Dateien inklusive des aktuellen Hooks.
hook-reload Startet den Server neu
hook-info Gibt Informationen über die aktuelle Server Version aus
update Prüft auf eine neue Server Version und updated den Server.
read-log <string> Usage: 'read-log help' for more info
exit Stoppt den Server
Diese Sektion beschreibt, welche Möglichkeiten es gibt das Serververhalten einzustellen.
Folgende Konfigurationen werden automatisch bei der ersten ausführung erstellt:
hook-args={
max-clients=10.0;
client-timeout=10000.0;
port=6969;
phase-deletion-after=15780000;
}
hook-file=hook-files/server-hook.jar;
hook-file
: Relativer oder absoluter download Pfad für dieserver-hook.jar
hook-args
: Argumente die demserver-hook.jar
beim laden übergeben werdenmax-clients
: Maximale anzahl an Clients, die gleichzeitig mit dem Server verbunden sein dürfenclient-timeout
: Maximale dauer ein Client darf mit dem Server verbunden sein, bevor die Verbindung serverwseitig getrennt wirdport
: Der Port auf dem der Server laufen soll (Optional, standart: 6969)phase-deletion-after
: Nach wie vielen Sekunden eine Phasierung automatisch gelöscht werden soll, wenn vorher keine neue hochgeladen wurde
Um änderungen an der Konfiguration wirksam zu machen gibt es mehrere Möglichkeiten:
- Befehl
hook-reload
eingeben. - Befehl
exit
eingeben undMain.jar
neu starten
Da die Hook Datei nur eine einfache .jar Datei ist die mit einem ClassLoader geladen wird, kannst du ganz einfach selber eine erstellen!
Vorraussetzung ist eine .jar Datei die eine Klasse beinhaltet mit dem Namen Application
die von der abstrakten Klasse com.devkev.main.Hook
erbt.
Jetzt nur noch server-hook.jar
im angegebenen Pfad in main.conf ersetzen oder einen eigenen erstellen und deine eigenen hook-args
erstellen.
Aktuell ist es nur möglich mittels dem Befehl update
manuell nach neuen GitHub releases zu checken.
Automatische updates werden bald kommen.
Diese Updates werden aber nur die Hook Datei beeinflussen. Um die Main.jar
zu updaten musst du
selber in die Github releases schauen.
Falls eine neue Version für Main.jar
verfügbar ist, wird es in der Release Beschreibung stehen.
Es ist möglich Befehle an den Server zu senden. Das sind einfach Strings die über einen Socket gesendet werden. Maximale Zeichenlänge beträgt 6000.
Clients sind auf einen Befehl pro Verbindung beschränkt. Üblicherweise wäre das ein Befehl mit ein paar Parametern.
befehl "ein-parameter"
Bis auf Befehle sollte jeglicher Datentransfer zwischen Server und Client im JSON Format erfolgen. Standartmäßig sendet der Server Antorten im folgenden Format:
{
"data": "..",
"code": 0
}
Fehlernachricht:
{
"error": "Fehler Nachricht",
"code": 100
}
Antwort Codes 0-99 sind lediglich Statusmeldungen. Codes vom 100-... sind Fehlercodes. Eine Liste aller möglichen Codes findest du unter server-hook/Codes.java
- https://github.com/DevKevYT/devscript version: '1.9.4'
- https://mvnrepository.com/artifact/org.apache.poi/poi version: '5.1.0'
- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml version: '5.1.0'
- https://mvnrepository.com/artifact/org.apache.xmlbeans/xmlbeans version: '2.3.0'
- https://mvnrepository.com/artifact/dom4j/dom4j version: '1.6.1'
- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 version: '4.3'
- https://mvnrepository.com/artifact/org.apache.commons/commons-compress version: '1.18'
- https://mvnrepository.com/artifact/org.apache.poi/ooxml-schemas version: '4.1'