Acum, când înțelegeți despre notificările active și despre modul în care funcționează, acest al doilea tutorial vă va arăta cum să aplicați aceste cunoștințe. Voi arăta două modalități de a lucra cu notificări active utilizând a Node.js Server. Această abordare poate fi aplicată cu ușurință altor tipuri de servere.
Fișierul de descărcare pentru acest tutorial conține codul pentru un mic, Express.js server de web care poate fi rulat pe un a Virtual Private Server sau VPS. Am un cont cu FilpHost pe care o folosesc pentru mine Instrumente personalizate de calculator site-ul web. Doar încărcați aceste fișiere într-un VPS, instalați-l Node.js, și executați o comandă în directorul:
npm install
Aceasta va instala toate bibliotecile necesare pentru Express.js și Mops motor de șablon. Majoritatea fișierelor din acest director sunt fișiere de suport pentru server. Fișierele de asistență afișează o pagină web care are un singur buton. Dacă faceți clic pe buton, va fi trimisă o notificare către server pentru a ping calculatorul de acasă. Fișierele principale de interes sunt cele două tipuri de fișiere server: freeddns-Router.js și locale-Router.js.
Fișierul serverului pentru trimiterea la computerul de la domiciliu prin DDNS, freeddns-Router.js, conține acest cod:
// Încărcați bibliotecile utilizate. // var express = necesită ("expres"); var http = necesită ("http"); // Setarea variabilelor de aplicație. // var app = expres (); var port = 3030; var data = title: "Pagina principală de notificare", app: "Server de notificare"; var homeComputer = "http://customct.freeddns.org:4490/action.html?macro=998C71BC-00CE-42B1-9478-306AA747A86A&value=Notice+from+"; // // Setează rutele Express. // app.use (expres.static ("static")); app.set ("vizualizări", "./views") app.set ("motor de vizualizare", "pug"). // Manipulați pagina principală. Aceasta oferă clientului / / un buton de apăsare pentru a trimite o notificare. Acest // va face șablonul PEG în directorul "views" //. // app.get ("/", funcția (req, res) res.render ("index", date);); // Handle cererea de la client pentru a trimite // computerul de la domiciliu o notificare. // app.get ("/ api / notifyOwner", funcția (req, res) // // Răspundeți repede clientului // res.send ("bine"); // // Obțineți IP-ul client // // ip ip = req.ip || req.connection.remote; ip = ip.split (":") [3]; // // trimite IP-ul clientului la computerul de acasă folosind // Keyboard Maestro " (http: // http: // home ()) (>) > consola.log ("Răspuns primit: $ res.statusCode"); .ro ("eroare", (e) => console.log ("Eroare: $ e.message");));); // // Porniți serverul ascultând portul http specificat. // app.listen (port, function () console.log ("Serverul de notificare asculta pe port '+ port +"! "););
Va trebui să editați linia 16 pentru a se potrivi cu dvs. particular DDNS înființat. Liniile 35-62 definesc traseul / Api / notifyOwner
că browser-ul clientului va suna pentru a trimite o notificare la computerul de acasă.
Linkul pentru computerul de acasă, în homeComputer variabilă, solicită portul 4490 pentru numele de domeniu pentru computerul de acasă. Aceasta este setarea implicită a portului pentru Tasta serverului Web personal Maestro.
Restul legăturii, /action.html?macro=998C71BC-00CE-42B1-9478-306AA747A86A&value=Notice+from+
, devine action.html pagina de pe server pentru Tastatura Maestro cu variabilele macro și valoare. macro variabilă conține codul de identificare unic pentru macro în Tastatura Maestro.
valoare variabila conține orice doriți să trimiteți la macrocomandă Adresa URL codificată. Informațiile din valoare variabila este în % TriggerValue%
variabilă pentru Tastatura Maestro script de folosit.
Acum, instalați Tastatura Maestro macro care se află în fișierul de descărcare pentru acest tutorial. Această macrocomandă va afișa % TriggerValue%
către utilizator. Codul serverului trimite IP a clientului care a apăsat butonul de pe site.
Apoi, deschideți Tastatura Maestro preferințele și faceți clic pe Web Server opțiune în partea de sus. Setați opțiunile la următoarele valori: Server Web activat verificat, Portul HTTP setat la 4490 și Accesarea browserului Web activată verificat.
Tasta serverului Web MaestroDacă deschideți browserul dvs. web http: // localhost: 4490
, veți vedea Tastatură Maestopagina de web a serverului. Dacă macrocomanda pe care o încărcați din descărcare este singura macrocomandă care se declanșează de pe serverul web, aceasta se va afișa în Macro publică listă.
Dacă nu apare, faceți clic pe meniul derulant și selectați Test macro. Tip Acesta este un test în Valoare și apăsați tasta A executa buton.
Tastatură Server Web Maestro: Macro executatVeți vedea notificarea afișată împreună cu textul Testarea: acesta este un test. Linkul care se afișează acum în bara de adrese a browserului ar trebui să aibă aceeași valoare macro valoare ca link-ul din scriptul serverului de pe linia 16. Dacă nu, schimbați scriptul pentru a se potrivi cu această valoare.
Odată ce ați încărcat software-ul de server, bibliotecile au fost instalate, modificările făcute în programul serverului și Tastatura Maestro încărcate și configurate macro, puteți testa apoi.
Pentru a porni serverul pe telefonul tău VPS, tastați următoarele:
nodul freeddns-Router.js
Apoi navigați la adresa serverului de la portul 3030.
Pagina principală a serverului de notificareAr trebui să vedeți pagina web minimă cu butonul pentru a apăsa pentru trimiterea notificării.
Server de notificare cu notificare trimisăCând apăsați pe înștiințare buton, ar trebui să obțineți dialogul de alertă care vă spune că serverul a primit notificarea bine. Apoi Afișați textul nota de la Tastatura Maestro ar trebui să afișeze IP adresa clientului care a trimis notificarea.
De când locuiesc în Thailanda și pe mine VPS este în Statele Unite, mesajul a trecut de la browser-ul meu în Thailanda, la VPS în Statele Unite, și apoi înapoi în sistemul meu din Thailanda, toate într-un minut.
Dacă nu doriți să utilizați a DDNS, puteți crea propria versiune cu serverul dvs. locale-Router.js fișierul este exact același cod de router ca freeddns-Router.js, dar are un nou traseu: / Api / homecomputer
.
De asemenea, are o nouă variabilă globală homeComputerIP care va stoca adresa IP a sistemului care îl sună.
// Încărcați bibliotecile utilizate. // var express = necesită ("expres"); var http = necesită ("http"); // Setarea variabilelor de aplicație. // var app = expres (); var port = 3030; var data = title: "Pagina principală de notificare", app: "Server de notificare"; var homeComputerPortLink = ": 4490 / action.html? macro = 998C71BC-00CE-42B1-9478-306AA747A86A & valoare = Notă + de la +"; var homeComputerIP = ""; // // Setează rutele Express. // app.use (expres.static ("static")); app.set ("vizualizări", "./views") app.set ("motor de vizualizare", "pug"). // Manipulați pagina principală. Aceasta oferă clientului / / un buton de apăsare pentru a trimite o notificare. Acest // va face șablonul PEG în directorul "views" //. // app.get ("/", funcția (req, res) res.render ("index", date);); // Handle cererea de la client pentru a trimite // computerul de la domiciliu o notificare. // app.get ("/ api / notifyOwner", funcția (req, res) // // Răspundeți repede clientului // res.send ("bine"); // // Obțineți IP-ul client // // ip ip = req.ip || req.connection.remote; ip = ip.split (":") [3]; // // trimite IP-ul clientului la computerul de acasă folosind // Keyboard Maestro " (http: // http: // "+ homeComputerIP + homeComputerPortLink + ip, (res) => console.log ('Răspuns primit: $ res.statusCode'); (e) => console.log ("Eroare eroare: $ e.message"););); app.get (" / api / homecomputer ", funcția (req, res) // // Răspuns rapid la client. // res.send (" okay "); // // Obțineți IP-ul clientului. // homeComputerIP = req .com || req.connection.remote; homeComputerIP = homeComputerIP.split (":") [3]; console.log ("Home computer IP este" + homeComputerIP);)); portul specificat http // app.listen (port, function () console.log ("Serverul de notificare asculta pe port" + port + "!";);
Liniile 65-77 gestionează acest nou traseu. Când deschideți acel traseu în browserul dvs. web, veți primi un text simplu bine. Dar, serverul va salva adresa IP si va folosi ca adresa IP pentru a trimite notificarea.
Acest lucru taie DDNS mijlocitor și tocmai trimite notificarea direct la computer.
Pentru a rula acest server, tastați următoarea linie:
nod local-Router.js
Pentru ca aceasta să funcționeze bine, va trebui fie să mergeți la adresa pentru setarea adresei IP de fiecare dată când vă conectați la internet, fie să rulați o sarcină de fundal care o face pentru dvs..
Clockwise este o aplicație excelentă pentru a face scripturi care rulează periodic. Am un Tutorial în sensul acelor de ceas, pe Envato Tuts +, pe care doriți să o consultați.
Tastatură Maestro Macro pentru stabilirea periodică a adresei IP pe serverFișierul de descărcare are, de asemenea, cele de mai sus Tastatura Maestro macro pentru a apela periodic serverul pentru a seta adresa IP.
De cand Tastatura Maestro nu are declanșator de resetare la Internet, declanșatorul periodic este cel mai bun lucru. Va trebui să modificați scriptul pentru a-ți face referire VPS.
Deoarece acest tutorial este despre obtinerea unei notificari active pe calculatorul local, nu am adaugat nimic pentru a adresa securitatea. Aceste servere mici sunt în prezent nesigure.
Dacă le folosiți în sălbăticie, vă sugerăm să creați un tip de securitate pentru identificarea clientului care stabilește adresa IP.
Puteți crea un sistem de parolă sau un sistem de transmitere token care este sigur, dar aceste idei depășesc scopul acestui tutorial.
Acum, că știți cât de eficiente funcționează notificările, creați propriul sistem. Ideile de aici sunt ușor de tradus PHP, Rubin, sau Piton. De asemenea, puteți extinde Tastatura Maestro macro pentru a procesa informațiile primite.
Am setarea să o sun Alfred flux de lucru pentru a număra vizitele pe site-ul meu. Ați putea folosi acest lucru pentru a anunța dacă cineva are nevoie de ajutor și pe un site web. Posibilitățile sunt limitate doar de imaginația ta.