tidstro snak med nodejs, socket.io og expressjs

, tidstro snak med nodejs, socket.io og expressjs,,,,, 87,,,,,,,,, 29,,,,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, nodejs giver mig evnen til at skrive back - end - kode i en af mine favorit sprog: javascript.det er den perfekte teknologi til bygning af tidstro ansøgninger.i denne forelæsning, skal jeg vise dig, hvordan man bygger et web chat anvendelse af expressjs og stik. io.,,,, "miljø, naturligvis, den første ting at gøre, er at få nodejs installeret i dit system.hvis du er en vinduer eller mac bruger, kan du besøge nodejs.org og downloade installatøren.hvis du i stedet foretrækker linux, ville jeg foreslå, at de henviser til denne sammenhæng.selv om jeg ikke vil komme nærmere ind på dette, hvis du støder på et anlæg, spørgsmål, og jeg er glad for at hjælpe og efterlade en bemærkning under denne post, når du har nodejs installeret, er du klar til at fælde den nødvendige instrumenter.,, expressjs - det vil forvalte serveren og reaktion på brugeren, jade - skabelon motor, socket.io - giver mulighed for tidstro kommunikation mellem front end - og back - end -, fortsætter inden for rammerne af en tom fortegnelse, skabe en, package.json, dossier med følgende indhold. {"navn": "realtimewebchat", "version": "0.0.0", "beskrivelse": "tidstro web snak", "enheder" ("stik. io": "senest", "express": "senest", "- -": "senest"), "forfatter af": "pr. "), ved hjælp af konsollen (i henhold til windows - kommando hurtig), sejle til din mappe og henrette:, new public management installere, i et par sekunder, vil du have alle de nødvendige afhængighed, overført til den, node_modules, fortegnelse., at udvikle backend, lad os begynde med en simpel server, som vil levere anvendelse er html side, og derefter fortsætte med de mere interessante ting: tidstro kommunikation.skabe et, index.js, fil med følgende centrale expressjs kode:, var udtryk for = kræver ("express") var app = express(); var havn = 3.700; app. kom ("/" funktion (req, res) (res.send ("det virker!"); '); ca. hør (havn); konsol. log ("lytter på havn" + havn), ovenfor, vi har skabt en ansøgning og defineret sin havn.vi har registreret en rute, som i dette tilfælde er en enkelt få anmodning uden nogen parametre.for nu, er ikke blot en tekst fra vej til kunden.endelig vil selvfølgelig på bunden, løber vi den server.for at aktivere anvendelse fra konsollen, udføre:, node indeks. js, - - løber, så burde du være i stand til at åbnehttp: ///////////////127.0.0.1:3700, og se, det virker.nu, i stedet for "det fungerer", vi skal tjene html.i stedet for ren html, kan det være gavnligt at bruge en skabelon motor.det er et fremragende valg, som har god integration med expressjs.det er, hvad jeg typisk anvendelse i mine egne projekter.oprette et register, som kaldes, tpl, og stille følgende, page.jade, fil i det:,!!!html hoved afsnit = "tidstro web chat" organ&#indhold (stil ='width: 500px. højde: 300px; margen: 0 0 20px 0; grænse: faste 1pxϧ, overflow-y: rullen; «). kontrol input. område (stil ='width: 350px;) input. send (type ='button, værdi ='send), jade syntaks er ikke så kompliceret, men for en fuldstændig vejledning, foreslår jeg, at de henviser til jade-lang.com.med henblik på anvendelse af jade med expressjs, kræver vi følgende indstillinger. app. sæt ('views, __dirname + /tpl); ca. sæt ('view motor "," jade "); ca. motor ('jade, kræver ('jade '). __express), får (" app. /"funktion (req, res) (res.render (" side ");}); denne kode informerer udtrykke, hvor din model filer, og som skabelon motor til at bruge.det angiver den funktion, der vil behandle den model er en kode.når alt er arrangeret, vi kan bruge,. gøre, metode for den respons, genstand, og blot sende vores jade kode for brugeren.den produktion, ikke er særlig på dette punkt, ikke mere end en, div. element (den ene med id, indhold,), som vil blive anvendt som indehaver til at budskaber og to kontroller (input område og knap), som vi vil bruge til at sende det budskab, vi vil bruge en. eksterne javascript fil, der vil holde forenden logik, er vi nødt til at informere expressjs, hvor de skal lede efter sådanne ressourcer.skabe et tomt fortegnelse, offentlig, og der tilføjes følgende linje før indkaldelsen til. hør, metode. app. brug (express. statisk (__dirname + /offentlige "), indtil videre, og vi har en server, som med succes opfylder få anmodninger.nu er det tid til at tilføje, socket.io integration.ændre denne linje:, app. hør (havn), at:, var io = kræver ('socket. io). hør (app. hør (havn), ovenfor, vi vedtog expressjs server til socket.io.i virkeligheden vores tidstro kommunikation stadig vil ske i samme havn.fremad, vi er nødt til at skrive den kode, der modtager en besked fra kunden, og sender det til alle de andre.hver socket.io anvendelse begynder med en forbindelse, chef.vi burde have en:, io. muffer. ('connection, funktion (sokkel) (sokkel. udsender ('message, {budskab: "velkommen til chat '}), stik. ('send, funktion (data) {io. muffer. udsender ('message, data)}))); formålet, stik, som er gået til din kontaktperson, er faktisk det stik af kunden.tænk over det, som en forbindelse mellem deres server og brugerens browser.efter en vellykket forbindelse sender vi en velkommen, type meddelelse, og, naturligvis, binde en kontaktperson, der vil blive anvendt som en kurator.som følge heraf bør udsende et budskab med kundens navn, sende, som vi vil fange.efter det, vi sender de data, der indsendes af brugeren, at alle andre stikdåser, io. muffer. udsender,., med kode ovenfor, er vores back - end - er klar til at modtage og sende meddelelser til kunderne.lad os tilføje nogle avancerede kode.,, udvikling af forenden, skabe, snak. js,, og det inden for de offentlige, fortegnelse over din ansøgning.pasta følgende kode:, window.onload = function() {var beskeder = [] var sokkel = io. - ('http: //localhost: 3700) var område = dokument. getelementbyid ("område"), var sendbutton = dokument. getelementbyid ("send") var indhold = dokument. getelementbyid ("indhold"); stikkontakt. ('message, funktion (data) (hvis (data. meddelelse) {meddelelser. tryk (data. besked) var html = "; (var - jeg = 0. jeg < messages.length; jeg + +) (http: //+ = meddelelser [i] + < br /> «) content.innerhtml = html;} andre (konsol. log (", der er et problem: "data)}}); sendbutton.onclick = function() (var tekst = field.value, stik. udsender ('send, {budskab: tekst})}}, vores logik er pakket i,. onload, kontakt for at sikre, at alle avance og eksterne javascript er fuldt lastet.i de næste par linjer, vi skaber et system, som skal opbevare alle de beskeder, stik imod, og nogle genveje til vores dom elementer.igen, svarende til den anden, vi binder en funktion, som vil reagere på den videre aktiviteter.i vores sag, det er en begivenhed, der hedder besked.når en sådan begivenhed indtræffer, vi forventer at modtage et objekt, data, med den ejendom, besked.tilføj det budskab til vores opbevaring og ajourføring, indhold, div.vi har også medtaget de logik for at sende et budskab.det er ganske enkelt blot udsende et budskab med navnet, sende,.,, hvis du åbnerhttp: //localhost: 3700, vil du møde nogle fejl, pop - up -.det er, fordi vi er nødt til at opdatere, page.jade, indeholder de nødvendige javascript filer, hoved afsnit = "tidstro web chat" script (src = /snak. j 'er ") manuskript (src = /port. io /port. io. j' er"), bemærker, at socket.io forvalter forsyningen af, sokkel. io. js,.du behøver ikke at bekymre dig om manuelt at downloade denne sag. vi kan køre vores server med node index.js i panelet og åbnehttp: //localhost: 3700,.du skulle se den glædelige besked.selvfølgelig, hvis du sender noget, skal det være angivet i indhold, div.hvis du vil være sikker på, at det virker, åbne et nyt tab (eller endnu bedre en ny browser) og belastning af ansøgningen.det gode ved socket.io er, at det virker, selv hvis du stopper nodejs server.forenden vil fortsætte med at arbejde.når serveren er startet igen, din snak er fint. i sin nuværende tilstand, vores snak er ikke perfekt, og der er behov for nogle forbedringer.,, forbedringer, den første ændring, som vi skal gøre, er at identiteten af de beskeder.i øjeblikket er det ikke klart, hvilke meddelelser der er sendt af hvem.det gode er, at vi ikke behøver at ajourføre vores nodejs kode til at opnå dette.det er, fordi serveren blot fremsender data, objekt.så vi er nødt til at tilføje en ny ejendom, og læse det senere.før korrektioner, snak. js, lad os tilføje en ny, input, et område, hvor brugeren kan tilføje hans /hendes navn.i, s. jade, ændre, kontrol, div.,.,. kontrol



Previous:
Next Page: