WindowsControl-Socket
Erklärung
Mit den Skripten in client.js und server.js lässt sich eine Verbindung zwischen Server und Client per Socket-IO aufbauen. So ist es möglich vom Server Befehle an den Client zu senden und auch umgekehrt. Momentan kann primär der Server Befehle an den Client senden und auch Antworten zurück erhalten.
Mögliche Befehle vom Server an den Client
- Notification (Benachrichtigung)
Hierbei wird dem Client die Nachricht auf dem Datenpunkt geschickt und er zeigt diese als TrayIcon-Tooltip an
- Powershell
Hierbei wird dem Client der Text aus dem Datenpunkt geschickt und er führt dieses direkt aus, also vorsichtig mit sein!
- Shutdown (Herunterfahren)
Herunterfahren Befehl an den Client
- Restart (Neustart)
Neustart Befehl an den Client
Informationen die der Server vom Client erhält
- Connected (Verbunden)
Zeigt an ob der Client mit dem Server verbunden ist
- Architecture (Architektur)
Zeigt die Client Architektur an z.B. x64 für 64-Bit
-
Distribution
Zeigt die Client Distribution an z.B. Windows 10
-
Hostname (Computer-Name)
Zeigt den Client Hostnamen an
Konfiguration
Server Seite
- In der verwendeten JavaScript Instanz, sollte als zusätzliches NPM Modul socket.io eingetragen sein.
- Die server.js aus diesem Projekt nun als Skript anlegen.
- Nun sind noch Änderungen im Skript notwendig.
- Die Variable INSTALL_FOLDER gibt an, an welche Stelle unter 0_userdata die neuen Datenpunkte angelegt werden. (Momentan wird nur die Installation unter 0_userdata untersützt.)
Windows Client
Zuerst das Git Projekt runterladen und im Projektordner den folgenden Befehl durchführen um die Benötigten Abhängigkeiten runterzuladen.
npm i
Voraussetzungen
- NodeJs >= v14.16.1
- Global installiertes NodeJs Modul pm2. (
npm install -g pm2
) - Im Projektverzeichnis (Verzeichnis wo die client.js liegt) eine .env anlegen und mit den notwendigen Variablen füllen (siehe unten)
- Angepasste AutoStartMitPm2.bat in den Autostart
AutoStartMitPm2:
Bitte den Pfad in der 3 Zeile anpassen, hier muss der Ordner zu diesem Projekt drin stehen Das Laufwerk in dem sich der Pfad befindet in Zeile 2 Der Autostartordner lässt sich leicht öffnen, indem man die Windowsanwendung "Ausführen" öffnet und hier "shell:startup" einträgt.
Um die NodeJs Anwendung auf einem Windowssystem zu starten nutze ich NodeJs v14.16.1 und setze die AutoStartMitPm2.bat in den Autostart Ordner von Windows. Im Ordner des Projektes muss eine .env angelegt werden und mit folgenden Variablen können die wichtigsten Parameter gesetzt werden:
Umgebungsvariablen in der .env Datei
-
SERVER_IP Die IP des Servers der die Verbindung annimmt
-
SERVER_PORT Der Port des Servers der die Verbindung annimmt. Wenn nichts angegeben, wird 8588 verwendet
Beispiel:
SERVER_PORT=8588
SERVER_IP=192.168.2.10
Die wichtigsten verwendeten Module und Credits
- Danke an https://github.com/Mic-M dessen Skript zum Anlegen von Datenpunkten ich ein wenig angepasst habe und verwende.
- socket.io
- wintools
- systeminformation
- node-notifier
- node-powershell
Ideen für weitere Funktionen
- Besseres Logging Clientseite (auch mit Logdateien)
- Erweiterte Benachrichtigungen
Hierbei könnte laut dem verwendeten NodeJs Modul auch mit dem Tooltip interagiert werden (Klick drauf) und damit Aktionen auf Server Seite auslösen. Oder auch eine Pfadangabe für ein alternatives Icon welchen beim Tooltip verwendet wird.