Modi per ottenere notifiche attive su un'applicazione Mac

Ora che hai compreso le notifiche attive e il loro funzionamento, questo secondo tutorial ti mostrerà come applicare tale conoscenza. Mostrerò due modi di lavorare con le notifiche attive usando a Node.js server. Questo stesso approccio può essere facilmente applicato ad altri tipi di server.

Notifiche attive Utilizzo del DDNS

Il file di download per questo tutorial contiene il codice per un piccolo, Express.js server web che può essere eseguito su a Virtual Private Server o VPS. Ho un account con FilpHost che uso per il mio Strumenti informatici personalizzati sito web. Basta caricare questi file su un VPS, installare Node.js, ed esegui un comando nella directory:

installazione di npm

Questo installerà tutte le librerie necessarie per Express.js e carlino motore di template. La maggior parte dei file in questa directory supportano i file per il server. I file di supporto mostrano una pagina Web con un solo pulsante. Facendo clic sul pulsante si invierà una notifica al server per eseguire il ping sul mio computer di casa. I file principali di interesse sono i due tipi di file server: freeddns-Router.js e locali-Router.js.

Il file del server per fare riferimento al computer di casa tramite a DDNS, freeddns-Router.js, contiene questo codice:

// // Carica le librerie utilizzate. // var express = require ("express"); var http = require ("http"); // // Imposta le variabili dell'applicazione. // var app = express (); var port = 3030; var data = title: "Pagina principale di Notification Server", app: "Notification Server"; var homeComputer = "http://customct.freeddns.org:4490/action.html?macro=998C71BC-00CE-42B1-9478-306AA747A86A&value=Notice+da+"; // // Imposta le rotte Express. // app.use (express.static ("static")); app.set ("views", "./views") app.set ("view engine", "pug") // // Gestire la Home page. Ciò dà al client // un pulsante da premere per inviare una notifica. Questo // renderà il modello PEG nella directory "views" //. // app.get ("/", function (req, res) res.render ("index", data);); // // Gestisce la richiesta dal client per inviare // al computer di casa una notifica. // app.get ("/ api / notifyOwner", function (req, res) // // Rispondi rapidamente al client. // res.send ("okay"); // // Ottieni l'IP del client. // var ip = req.ip || req.connection.remote; ip = ip.split (":") [3]; // // Invia l'IP del client al computer di casa usando // Keyboard Maestro " s Interfaccia Web. // http.get (homeComputer + ip, (res) => console.log ('Risposta ottenuta: $ res.statusCode'); // consuma il corpo della risposta res.resume ();) .on ("error", (e) => console.log ('Errore ottenuto: $ e.message'););); // // Avvia il server che ascolta la porta http specificata. // app.listen (port, function () console.log ("Notification Server listening on port" + port + "!"););

Dovrai modificare la riga 16 per adattarla al tuo particolare DDNS impostare. Le righe 35-62 definiscono il percorso / Api / notifyOwner che il browser del client chiamerà per inviare una notifica al computer di casa.

Il collegamento per il computer di casa, nel homeComputer variabile, chiama la porta 4490 sul nome di dominio per il computer di casa. Questa è l'impostazione predefinita della porta per Personal Web Server della tastiera Maestro

Il resto del link, /action.html?macro=998C71BC-00CE-42B1-9478-306AA747A86A&value=Notice+from+, ottiene il action.html pagina sul server per Maestro della tastiera con le variabili macro e valore. Il macro variabile contiene il codice identificativo univoco per la macro in Maestro della tastiera

Il valore variabile contiene tutto ciò che vuoi inviare alla macro che è URL codificato. Le informazioni nel valore la variabile è nel % TriggerValue% variabile per il Maestro della tastiera script da usare.

Tastiera Maestro Macro per la ricezione di notifiche

Ora, installa il Maestro della tastiera macro che si trova nel file di download per questo tutorial. Questa macro mostrerà il % TriggerValue% per l'utente. Il codice server invia il IP del cliente che ha premuto il pulsante sul sito web.

Preferenze di Keyboard Maestro: Web Server

Quindi, apri il Maestro della tastiera preferenze e clicca sul Server web opzione in alto. Imposta le opzioni sui seguenti valori: Server Web abilitato verificato, Porta HTTP impostato su 4490 e Accesso al browser Web abilitato verificato.

Server Web della tastiera Maestro

Se si apre il browser Web a http: // localhost: 4490, vedrai il Tastiera MaestoLa pagina del server web. Se la macro caricata dal download è l'unica macro che hai trigger dal server web, verrà visualizzata nel Macro pubblica elenco. 

Se non viene visualizzato, fai clic sul menu a discesa e seleziona Test macro. genere Questo è un test nel Valore area e premere il Eseguire pulsante.

Keyboard Server's Web Server: esecuzione della macro

Vedrai la notifica visualizzata con il testo Test: questo è un test. Il link che ora mostra nella barra degli indirizzi del browser dovrebbe avere lo stesso macro valore come link nello script del server alla riga 16. In caso contrario, cambiare lo script per farlo corrispondere a questo valore.

Test sul VPS

Una volta caricato il software del server, installate le librerie, le modifiche apportate al programma server e Maestro della tastiera macro caricata e configurazione, è quindi possibile testare. 

Per avviare il server sul tuo VPS, digitare quanto segue:

nodo freeddns-Router.js

Quindi navigare verso l'indirizzo del server sulla porta 3030.

Pagina principale di Notification Server

Dovresti vedere la pagina web minima nuda con il pulsante da premere per inviare la notifica.

Notification Server con notifica inviata

Quando si preme il Avviso pulsante, si dovrebbe ottenere la finestra di avviso che dice che il server ha ricevuto la notifica okay. Poi il Visualizza testo avviso da Maestro della tastiera dovrebbe mostrare il IP indirizzo del cliente che ha inviato la notifica. 

Dal momento che vivo in Tailandia e il mio VPS è negli Stati Uniti, il messaggio è andato dal mio browser in Tailandia, al VPS negli Stati Uniti, e poi di nuovo al mio sistema in Tailandia, tutto in un minuto.

Notifiche attive 'Roll your own'

Se non vuoi usare a DDNS, puoi creare la tua versione con il tuo server. Il locali-Router.js il file è lo stesso identico codice del router freeddns-Router.js, ma ha una nuova rotta: / Api / homecomputer

Ha anche una nuova variabile globale homeComputerIP che memorizzerà l'indirizzo IP del sistema che lo chiama.

// // Carica le librerie utilizzate. // var express = require ("express"); var http = require ("http"); // // Imposta le variabili dell'applicazione. // var app = express (); var port = 3030; var data = title: "Pagina principale di Notification Server", app: "Notification Server"; var homeComputerPortLink = ": 4490 / action.html? macro = 998C71BC-00CE-42B1-9478-306AA747A86A e valore = Avviso + da +"; var homeComputerIP = ""; // // Imposta le rotte Express. // app.use (express.static ("static")); app.set ("views", "./views") app.set ("view engine", "pug") // // Gestire la Home page. Ciò dà al client // un pulsante da premere per inviare una notifica. Questo // renderà il modello PEG nella directory "views" //. // app.get ("/", function (req, res) res.render ("index", data);); // // Gestisce la richiesta dal client per inviare // al computer di casa una notifica. // app.get ("/ api / notifyOwner", function (req, res) // // Rispondi rapidamente al client. // res.send ("okay"); // // Ottieni l'IP del client. // var ip = req.ip || req.connection.remote; ip = ip.split (":") [3]; // // Invia l'IP del client al computer di casa usando // Keyboard Maestro " s Interfaccia Web. // http.get ("http: //" + homeComputerIP + homeComputerPortLink + ip, (res) => console.log ('Risposta ottenuta: $ res.statusCode'); // consuma la risposta body res.resume ();). on ("error", (e) => console.log ('Errore ottenuto: $ e.message'););); app.get (" / api / homecomputer ", function (req, res) // // Rispondi rapidamente al client. // res.send (" okay "); // // Ottieni l'IP del client. // homeComputerIP = req .ip || req.connection.remote; homeComputerIP = homeComputerIP.split (":") [3]; console.log ("IP del computer di casa è" + homeComputerIP);); // // Avvia il server ascoltando la porta http specificata. // app.listen (port, function () console.log ("Notification Server listening on port '+ port +"! "););

Le linee 65-77 gestiscono questa nuova rotta. Quando apri quella rotta nel tuo browser web, riceverai un testo in chiaro va bene. Ma il server salverà il tuo indirizzo IP e lo userà come indirizzo IP per inviare la notifica. 

Questo taglia fuori il DDNS intermediario e invia semplicemente la notifica direttamente al tuo computer.

Per eseguire questo server, digitare la seguente riga:

nodo local-Router.js

Affinché funzioni correttamente, dovrai accedere all'indirizzo per impostare l'indirizzo IP ogni volta che ti connetti a Internet o eseguire un'attività in background che lo faccia per te. 

Senso orario è una grande applicazione per creare script che vengono eseguiti periodicamente. Ho un Tutorial in senso orario, su Envato Tuts +, che potresti voler consultare.

Keyboard Maestro Macro per impostare periodicamente l'indirizzo IP sul server

Il file di download ha anche il sopra Maestro della tastiera macro per chiamare periodicamente il server per impostare l'indirizzo IP. 

Da Maestro della tastiera non ha un trigger di reset Internet, un trigger periodico è la cosa migliore. Dovrai modificare lo script per fare riferimento al tuo VPS.

Sicurezza

Poiché questo tutorial riguarda l'ottenimento di una notifica attiva sul tuo computer locale, non ho aggiunto nulla per gestire la sicurezza. Questi piccoli server sono attualmente insicuri. 

Se li usi in natura, suggerisco caldamente di creare un tipo di sicurezza per l'identificazione del client che imposta l'indirizzo IP. 

È possibile creare un sistema di password o un sistema di passaggio di token che sia sicuro, ma queste idee vanno oltre lo scopo di questo tutorial.

Conclusione

Ora che sai come funzionano le notifiche attive, crea il tuo sistema. Le idee qui sono facilmente tradotte PHP, Rubino, o Pitone. È inoltre possibile espandere il Maestro della tastiera macro per elaborare le informazioni in arrivo. 

Ho installato per chiamare un Alfred flusso di lavoro per contare le visite al mio sito web. Potresti usare questo per notificare se qualcuno ha bisogno di aiuto su un sito web. Le possibilità sono limitate dalla tua immaginazione.