Måter å få aktive varsler til et Mac-program

Nå som du forstår om aktive varsler og hvordan de fungerer, vil denne andre opplæringen vise deg hvordan du bruker den kunnskapen. Jeg viser to måter å jobbe med aktive varsler ved hjelp av en node.js server. Denne samme tilnærmingen kan enkelt brukes til andre servertyper.

Aktive varsler ved hjelp av DDNS

Nedlastingsfilen for denne opplæringen inneholder koden for en liten, Express.js webserver som kan kjøres på en Virtual Private Server eller VPS. Jeg har en konto med FilpHost som jeg bruker til min Tilpasset datautstyr nettside. Bare last opp disse filene til en VPS, installer node.js, og kjør en kommando i katalogen:

npm installasjon

Dette vil installere alle nødvendige biblioteker for Express.js og Pug malmotor. De fleste filene i denne katalogen støtter filer til serveren. Støttefilene viser en nettside som har en enkelt knapp. Når du klikker på knappen, sendes et varsel til serveren for å pinge min hjemmedatamaskin. Hovedfilene av interesse er de to typene serverfiler: freeddns-Router.js og lokale-Router.js.

Serverfilen for å henvise til hjemmedatamaskinen via en DDNS, freeddns-Router.js, inneholder denne koden:

// // Last inn biblioteker som brukes. // var express = krever ("express"); var http = krever ("http"); // // Oppsett applikasjonsvariablene. // var app = express (); var port = 3030; var data = tittel: "Hovedmeny for varslingsserver", app: "Meldingsserver"; var homeComputer = "http://customct.freeddns.org:4490/action.html?macro=998C71BC-00CE-42B1-9478-306AA747A86A&value=Notice+from+"; // // Konfigurer Express-ruter. // app.use (express.static ("static")); app.set ("views", "./views") app.set ("view engine", "pug") // // Håndter startsiden. Dette gir klienten // en knapp for å trykke for å sende et varsel. Dette // vil gjengi PEG-malen i katalogen "views" //. // app.get ("/", funksjon (req, res) res.render ("index", data);); // // Håndter forespørselen fra klienten for å sende // hjemmedatamaskinen en melding. // app.get ("/ api / notifyOwner", funksjon (req, res) // // Rask svar på klienten. // res.send ("okay"); // // Få IP av klient. // var ip = req.ip || req.connection.remote; ip = ip.split (":") [3]; // // Send klientens IP til hjemmedatamaskinen ved hjelp av // Keyboard Maestro " s webgrensesnitt. // http.get (homeComputer + ip, (res) => console.log ('Fikk svar: $ res.statusCode'); // forbruker respons body res.resume ();) .on ("error", (e) => console.log ('Fikk feil: $ e.message';);; // // Start serveren å lytte til den angitte http-porten. // app.listen (port, funksjon () console.log ("Notification Server listening on port '+ port +"! "););

Du må redigere linje 16 for å matche din spesielle DDNS oppsett. Linjene 35-62 definerer ruten / Api / notifyOwner at klientens nettleser vil ringe for å sende et varsel til hjemmedatamaskinen.

Koblingen til hjemmedatamaskinen, i homeComputer variabel, kaller port 4490 på domenenavnet til hjemmedatamaskinen. Dette er standard portoppsett for Tastatur Maestros personlige webserver

Resten av lenken, /action.html?macro=998C71BC-00CE-42B1-9478-306AA747A86A&value=Notice+from+, får action.html side på serveren for Tastatur Maestro med variablene makro og verdi. De makro variabel inneholder den unike identifikasjonskoden for makroen i Tastatur Maestro

De verdi variabel inneholder hva du vil sende til makroen som er URL-kodet. Informasjonen i verdi variabel er i % TriggerValue% variabel for Tastatur Maestro Skript å bruke.

Tastatur Maestro Makro for mottak av varsler

Nå, installer Tastatur Maestro makro som er i nedlastingsfilen for denne opplæringen. Denne makroen vil vise % TriggerValue% til brukeren. Serverkoden sender IP av klienten som trykket på knappen på nettsiden.

Tastatur Maestro Preferanser: Web Server

Deretter åpner du Tastatur Maestro preferanser og klikk på Internett server alternativet på toppen. Still inn alternativene til følgende verdier: Webserver aktivert sjekket, HTTP-port satt til 4490, og Tilgang til nettleser aktivert sjekket.

Keyboard Maestros webserver

Hvis du åpner nettleseren din til http: // localhost: 4490, du vil se Tastatur Maestos webserver side. Hvis makroen du lastet fra nedlastingen, er den eneste makroen du har som utløser fra webserveren, vil den dukke opp i Offentlig makro liste. 

Hvis den ikke vises, klikk på rullegardinmenyen og velg Test makro. Type Dette er en test i Verdi område og trykk på Henrette knapp.

Tastatur Maestros webserver: Makro utført

Du får se varselet som vises med teksten Testing: Dette er en test. Koblingen som nå vises i adressefeltet i nettleseren, skal ha det samme makro Verdien som koblingen i server-skriptet på linje 16. Hvis ikke, endre skriptet for å matche denne verdien.

Testing på VPS

Når du har lastet opp serverprogramvaren, installert biblioteker, redigeringer gjort til serverprogrammet og Tastatur Maestro makro lastet og oppsett, kan du deretter teste. 

For å starte serveren på din VPS, skriv inn følgende:

node freeddns-Router.js

Deretter navigerer du til serverens adresse i port 3030.

Varslingsserverens hovedside

Du bør se den minste nettwebsiden med knappen for å trykke for å sende varselet.

Meldingsserver med sendt melding

Når du trykker på legge merke til knappen, bør du få varslingsdialogen, og fortelle deg at serveren mottok varselet i orden. Og så Skjermtekst legge merke til fra Tastatur Maestro skal vise IP adresse på klienten som sendte varselet. 

Siden jeg bor i Thailand og min VPS er i USA, meldingen gikk fra min nettleser i Thailand, til VPS i USA, og deretter tilbake til mitt system i Thailand alt innen ett minutt.

'Rull dine egne' aktive varsler

Hvis du ikke vil bruke en DDNS, Du kan lage din egen versjon med serveren din. De lokale-Router.js filen er nøyaktig samme ruterkode som freeddns-Router.js, men har en ny rute: / Api / homecomputer

Det har også en ny global variabel homeComputerIP som vil lagre IP-adressen til systemet som kaller det.

// // Last inn biblioteker som brukes. // var express = krever ("express"); var http = krever ("http"); // // Oppsett applikasjonsvariablene. // var app = express (); var port = 3030; var data = tittel: "Hovedmeny for varslingsserver", app: "Meldingsserver"; var homeComputerPortLink = ": 4490 / action.html? macro = 998C71BC-00CE-42B1-9478-306AA747A86A & verdi = Merk + fra +"; var homeComputerIP = ""; // // Konfigurer Express-ruter. // app.use (express.static ("static")); app.set ("views", "./views") app.set ("view engine", "pug") // // Håndter startsiden. Dette gir klienten // en knapp for å trykke for å sende et varsel. Dette // vil gjengi PEG-malen i katalogen "views" //. // app.get ("/", funksjon (req, res) res.render ("index", data);); // // Håndter forespørselen fra klienten for å sende // hjemmedatamaskinen en melding. // app.get ("/ api / notifyOwner", funksjon (req, res) // // Rask svar på klienten. // res.send ("okay"); // // Få IP av klient. // var ip = req.ip || req.connection.remote; ip = ip.split (":") [3]; // // Send klientens IP til hjemmedatamaskinen ved hjelp av // Keyboard Maestro " s webgrensesnitt. // http.get ("http: //" + homeComputerIP + homeComputerPortLink + ip, (res) => console.log ('Fikk svar: $ res.statusCode'); // konsumere svar kroppsreserve ();). På ("feil", (e) => console.log ('Fikk feil: $ e.message'););); app.get / api / homecomputer ", funksjon (req, res) // // Rask svar på klienten. // res.send (" okay "); // // Hent klientens IP. // homeComputerIP = req .ip || req.connection.remote; homeComputerIP = homeComputerIP.split (":") [3]; console.log ("Hjemmedatamaskin IP er" + homeComputerIP);; // // Start serveren å lytte til http-porten spesifisert. // app.listen (port, funksjon () console.log ("Notifikasjonsserver lytter på port '+ port +"! ";;));

Linjene 65-77 klarer denne nye ruten. Når du åpner den ruten i nettleseren din, får du en ren tekst tilbake greit. Men serveren lagrer din IP-adresse og bruker den som IP-adresse for å sende varselet. 

Dette kutter ut DDNS mellommann og sender kun varselet direkte til din datamaskin.

For å kjøre denne serveren skriver du inn følgende linje:

nod lokal-Router.js

For at dette skal fungere bra, må du enten gå til adressen for å angi IP-adressen hver gang du kobler til Internett, eller kjøre en bakgrunnsoppgave som gjør det for deg. 

Med urviseren er et flott program for å lage skript som jevnlig kjøres. Jeg har en Klokka med opplæring, på Envato Tuts +, som du kanskje ønsker å konsultere.

Tastatur Maestro Macro for periodisk innstilling av IP-adresse på server

Nedlastingsfilen har også ovennevnte Tastatur Maestro makro for periodisk å ringe serveren for å angi IP-adressen. 

Siden Tastatur Maestro har ikke en Internett-tilbakestillingsutløser, en periodisk utløser er det nest beste. Du må endre skriptet for å referere til VPS.

Sikkerhet

Siden denne opplæringen handler om å få et aktivt varsel til din lokale datamaskin, har jeg ikke lagt til noe for å adressere sikkerhet. Disse små serverne er for øyeblikket usikre. 

Hvis du bruker disse i naturen, foreslår jeg sterkt at du oppretter en slags sikkerhet for identifisering av klienten som setter IP-adressen. 

Du kan opprette et passordsystem eller et tokenpass system som er sikkert, men disse ideene er utenfor omfanget av denne opplæringen.

Konklusjon

Nå som du vet hvordan aktive meldinger fungerer, må du lage ditt eget system. Ideene her er lett oversatt til PHP, Rubin, eller Python. Du kan også utvide Tastatur Maestro makro for å behandle innkommende informasjon. 

Jeg har det oppsett for å ringe en alfred arbeidsflyt for å telle besøk til nettstedet mitt. Du kan bruke dette til å varsle om noen trenger hjelp på et nettsted også. Mulighetene begrenses bare av fantasien din.