Möglichkeiten, aktive Benachrichtigungen an eine Mac-Anwendung zu erhalten

Nachdem Sie die aktiven Benachrichtigungen und deren Funktionsweise verstanden haben, zeigt Ihnen dieses zweite Tutorial, wie Sie dieses Wissen anwenden können. Ich zeige zwei Möglichkeiten, mit aktiven Benachrichtigungen mit a zu arbeiten Node.js Server. Der gleiche Ansatz lässt sich problemlos auf andere Servertypen anwenden.

Aktive Benachrichtigungen über das DDNS

Die Downloaddatei für dieses Lernprogramm enthält den Code für eine kleine, Express.js Webserver, der auf einem Server ausgeführt werden kann virtueller privater Server oder VPS. Ich habe ein Konto bei FilpHost das ich für meine benutze Benutzerdefinierte Computer-Tools Webseite. Laden Sie diese Dateien einfach auf ein VPS hoch und installieren Sie sie Node.js, und führe einen Befehl im Verzeichnis aus:

npm installieren

Dadurch werden alle benötigten Bibliotheken für installiert Express.js und Mops Template Engine. Die meisten Dateien in diesem Verzeichnis unterstützen Dateien für den Server. In den Unterstützungsdateien wird eine Webseite mit einer einzelnen Schaltfläche angezeigt. Wenn Sie auf die Schaltfläche klicken, wird eine Benachrichtigung an den Server gesendet, um einen Ping an meinen Heimcomputer zu senden. Die wichtigsten Dateien sind die zwei Arten von Serverdateien: freeddns-Router.js und local-Router.js.

Die Server-Datei zum Verweisen auf den Heimcomputer über a DDNS, freeddns-Router.js, enthält diesen Code:

// // Lädt die verwendeten Bibliotheken. // var express = required ("express"); var http = erfordern ("http"); // // Richten Sie die Anwendungsvariablen ein. // var app = express (); var port = 3030; var data = title: "Notification Server-Hauptseite", App: "Notification Server"; var homeComputer = "http://customct.freeddns.org:4490/action.html?macro=998C71BC-00CE-42B1-9478-306AA747A86A&value=Notice+from+"; // // Richten Sie die Express-Routen ein. // app.use (express.static ("static")); app.set ("views", "./views") app.set ("view engine", "pug") // // Die Startseite bearbeiten. Dies gibt dem Client // eine Taste zum Drücken, um eine Benachrichtigung zu senden. Dieses // rendert die PEG-Vorlage im // Verzeichnis "views". // app.get ("/", Funktion (req, res) res.render ("index", data);); // // Behandeln Sie die Anforderung vom Client, // um eine Benachrichtigung an den Heimcomputer zu senden. // app.get ("/ api / notifyOwner", Funktion (req, res) // // Beantworten Sie schnell den Client. // res.send ("okay"); // // Holen Sie sich die IP des client. // var ip = req.ip || req.connection.remote; ip = ip.split (":") [3]; // // Senden der Client-IP über // Keyboard Maestro an den Heimcomputer s Web-Schnittstelle. // http.get (homeComputer + ip, (res) => console.log ('Antwort erhalten: $ res.statusCode'); // Antwortkörper res.resume (); verwenden. .on ("error", (e) => console.log ('Got error: $ e.message'););); //) Starten Sie den Server, der den angegebenen http-Port abhört. // app.listen (port, function () console.log ("Notification Server überwacht Port '+ port +"! "););

Sie müssen Zeile 16 entsprechend Ihren Angaben bearbeiten DDNS Konfiguration. Die Zeilen 35-62 definieren die Route / api / notifyOwner dass der Browser des Clients anruft, um eine Benachrichtigung an den Heimcomputer zu senden.

Der Link für den Heimcomputer in der Heimcomputer Variable, ruft Port 4490 für den Domänennamen des Heimcomputers auf. Dies ist die Standardeinstellung für den Port Persönlicher Webserver des Keyboard Maestro

Der Rest des Links, /action.html?macro=998C71BC-00CE-42B1-9478-306AA747A86A&value=Notice+from+, bekommt die action.html Seite auf dem Server für Keyboard Maestro mit den Variablen Makro und Wert. Das Makro Variable enthält den eindeutigen Identifikationscode für das Makro in Keyboard Maestro

Das Wert Variable enthält, was Sie an das Makro senden möchten URL-kodiert. Die Informationen in der Wert Variable ist in der % TriggerValue% Variable für die Keyboard Maestro zu verwendendes Skript.

Tastatur-Maestro-Makro zum Empfangen von Benachrichtigungen

Installieren Sie jetzt die Keyboard Maestro Makro, das sich in der Download-Datei für dieses Lernprogramm befindet. Dieses Makro zeigt die % TriggerValue% an den Benutzer. Der Servercode sendet die IP des Clients, der die Schaltfläche auf der Website gedrückt hat.

Keyboard Maestro Preferences: Webserver

Als nächstes öffnen Sie die Keyboard Maestro Einstellungen und klicken Sie auf die Webserver Option an der Spitze. Stellen Sie die Optionen auf die folgenden Werte ein: Webserver aktiviert geprüft, HTTP-Port auf 4490 und Webbrowser-Zugriff aktiviert geprüft.

Webserver des Keyboard Maestro

Wenn Sie Ihren Webbrowser auf öffnen http: // localhost: 4490, Sie werden das sehen Keyboard MaestoWeb-Server-Seite. Wenn das Makro, das Sie aus dem Download geladen haben, das einzige Makro ist, das Sie vom Webserver auslösen, wird es im angezeigt Öffentliches Makro Liste. 

Wenn es nicht angezeigt wird, klicken Sie auf das Dropdown-Menü und wählen Sie die Option Prüfung Makro. Art Dies ist ein Test in dem Wert Bereich und drücken Sie die Ausführen Taste.

Keyboard Maestro's Web Server: Makro ausgeführt

Sie sehen die Benachrichtigung mit dem Text Testen: Dies ist ein Test. Der Link, der jetzt in der Adressleiste des Browsers angezeigt wird, sollte gleich sein Makro Wert als Link im Serverskript in Zeile 16. Andernfalls ändern Sie das Skript entsprechend diesem Wert.

Testen am VPS

Nachdem Sie die Serversoftware hochgeladen haben, werden Bibliotheken installiert, Änderungen am Serverprogramm vorgenommen und die Keyboard Maestro Makro geladen und eingerichtet, können Sie dann testen. 

So starten Sie den Server auf Ihrem Computer VPS, Geben Sie Folgendes ein:

Knoten freeddns-Router.js

Navigieren Sie dann an Port 3030 zur Adresse des Servers.

Hauptseite des Benachrichtigungsservers

Sie sollten die minimale Webseite mit der Schaltfläche zum Senden der Benachrichtigung sehen.

Benachrichtigungsserver mit versendeter Benachrichtigung

Wenn Sie die Taste drücken beachten Wenn Sie auf die Schaltfläche klicken, erhalten Sie eine Benachrichtigung, dass der Server die Benachrichtigung erhalten hat. Dann ist die Text anzeigen Kündigung von Keyboard Maestro sollte das zeigen IP Adresse des Kunden, der die Benachrichtigung gesendet hat. 

Da ich in Thailand lebe und meine VPS In den USA ging die Nachricht von meinem Browser in Thailand auf die VPS in den Vereinigten Staaten und dann innerhalb von einer Minute wieder zu meinem System in Thailand.

"Rollen Sie Ihre eigenen" Aktive Benachrichtigungen

Wenn Sie keine verwenden möchten DDNS, Sie können mit Ihrem Server eine eigene Version erstellen. Das local-Router.js Datei ist derselbe Router-Code wie freeddns-Router.js, hat aber eine neue Route: / api / Heimcomputer

Es hat auch eine neue globale Variable homeComputerIP Dadurch wird die IP-Adresse des Systems gespeichert, das es anruft.

// // Lädt die verwendeten Bibliotheken. // var express = required ("express"); var http = erfordern ("http"); // // Richten Sie die Anwendungsvariablen ein. // var app = express (); var port = 3030; var data = title: "Notification Server-Hauptseite", App: "Notification Server"; var homeComputerPortLink = ": 4490 / action.html? macro = 998C71BC-00CE-42B1-9478-306AA747A86A & value = Notice + from +"; var homeComputerIP = ""; // // Richten Sie die Express-Routen ein. // app.use (express.static ("static")); app.set ("views", "./views") app.set ("view engine", "pug") // // Die Startseite bearbeiten. Dies gibt dem Client // eine Taste zum Drücken, um eine Benachrichtigung zu senden. Dieses // rendert die PEG-Vorlage im // Verzeichnis "views". // app.get ("/", Funktion (req, res) res.render ("index", data);); // // Behandeln Sie die Anforderung vom Client, // um eine Benachrichtigung an den Heimcomputer zu senden. // app.get ("/ api / notifyOwner", Funktion (req, res) // // Beantworten Sie schnell den Client. // res.send ("okay"); // // Holen Sie sich die IP des client. // var ip = req.ip || req.connection.remote; ip = ip.split (":") [3]; // // Senden der Client-IP über // Keyboard Maestro an den Heimcomputer s Web-Schnittstelle. // http.get ("http: //" + homeComputerIP + homeComputerPortLink + ip, (res) => console.log ('Antwort erhalten: $ res.statusCode'); // Antwort konsumieren body res.resume ();). on ("error", (e) => console.log ('Got error: $ e.message'););); app.get (" / api / homecomputer ", function (req, res) // // Antworte schnell auf den Client. // res.send (" okay "); // // Rufe die IP des Clients ab. // homeComputerIP = req .ip || req.connection.remote; homeComputerIP = homeComputerIP.split (":") [3]; console.log ("IP-Adresse des Heimcomputers ist" + homeComputerIP);; der angegebene http-Port. // app.listen (port, function () console.log ("Notification Server überwacht Port '+ port +"! "););

Die Zeilen 65-77 verwalten diese neue Route. Wenn Sie diese Route in Ihrem Webbrowser öffnen, erhalten Sie einen Klartext zurück in Ordnung. Der Server speichert jedoch Ihre IP-Adresse und verwendet sie als IP-Adresse, um die Benachrichtigung zu senden. 

Das macht das aus DDNS Zwischenhändler und versendet die Benachrichtigung direkt an Ihren Computer.

Um diesen Server auszuführen, geben Sie die folgende Zeile ein:

Knoten local-Router.js

Damit dies gut funktioniert, müssen Sie entweder bei jeder Verbindung zum Internet die Adresse zum Einstellen der IP-Adresse aufrufen oder eine Hintergrundaufgabe ausführen, die dies für Sie erledigt. 

Im Uhrzeigersinn ist eine großartige Anwendung zum Erstellen von Skripts, die regelmäßig ausgeführt werden. Ich habe ein Tutorial im Uhrzeigersinn, auf Envato Tuts +, das Sie möglicherweise konsultieren möchten.

Tastatur-Maestro-Makro zum periodischen Einstellen der IP-Adresse auf dem Server

Die Download-Datei hat auch das Obige Keyboard Maestro Makro zum periodischen Aufrufen des Servers, um die IP-Adresse festzulegen. 

Schon seit Keyboard Maestro hat keinen Internet-Reset-Auslöser, ein periodischer Auslöser ist die nächstbeste Sache. Sie müssen das Skript so anpassen, dass es auf Ihr verweist VPS.

Sicherheit

Da es sich bei diesem Lernprogramm um eine aktive Benachrichtigung an Ihren lokalen Computer handelt, habe ich nichts zur Sicherheit hinzugefügt. Diese kleinen Server sind derzeit unsicher. 

Wenn Sie diese in der Wildnis verwenden, empfehle ich dringend, eine Art Sicherheit für die Identifizierung des Clients zu erstellen, der die IP-Adresse festlegt. 

Sie können ein Kennwortsystem oder ein Token-Passing-System erstellen, das sicher ist. Diese Ideen liegen jedoch außerhalb des Rahmens dieses Lernprogramms.

Fazit

Nachdem Sie nun wissen, wie aktive Benachrichtigungen funktionieren, erstellen Sie Ihr eigenes System. Die Ideen hier sind leicht zu übersetzen PHP, Rubin, oder Python. Sie können das auch erweitern Keyboard Maestro Makro, um die eingehenden Informationen zu verarbeiten. 

Ich habe es eingerichtet, eine anzurufen Alfred Workflow, um Besuche auf meiner Website zu zählen. Sie können dies verwenden, um zu benachrichtigen, ob jemand auch auf einer Website Hilfe benötigt. Die Möglichkeiten sind nur durch Ihre Vorstellungskraft begrenzt.