Websocket med Node.js

Innholdsfortegnelse
Nettapplikasjoner har endret seg og utviklet seg, dette gjør brukernes behov annerledes enn da den første tilkoblingsprotokollen ble opprettet på nettverket. Følgelig protokollen HTTP har utviklet seg gjennom årene, men har ennå ikke nådd et sanntidsnivå, for eksempel en forbindelse TCP mellom to lag.
Disse begrensningene, i stedet for å skade utviklere og brukere, har blitt en kilde til motivasjon og kreativitet, og genererer løsninger som lar oss ikke bare etterligne et overføringssystem i sanntid, men også gjennom HTTP gjør det nesten naturlig.
WebsocketDet er her Websocket, en relativt ny protokoll som bare støttes av de mest moderne nettleserne, som lar oss fjerne HTTP for alle begrensningene og dermed kunne kommunisere effektivt gjennom overskrifter .
Websocket Det er fortsatt i en periode med aktiv modning, så det er veldig mulig at vi ikke finner det i nye løsninger, heldigvis i Node.js vi har allerede noen verktøy som lar oss håndtere dem uten å måtte stole på vår oppfinnsomhet for å bygge verktøy på lavere nivå.
KravDette er en avansert opplæring, så vi vil først kreve en funksjonell installasjon av Node.js I vårt system kan vi ta en titt på denne opplæringen før vi fortsetter å fordype oss i den. I tillegg trenger vi administratorrettigheter for å kunne installere bibliotekene vi skal bruke. Vi må være kjent med begrepene JavaScript for eksempel Ring tilbake og anonyme funksjoner. Til slutt må vi ha en tekstredigerer som Sublim tekst som lar oss skrive de forskjellige kodene som er i eksemplene.
For å begynne å lage et program som lar oss bruke Websockets Vi må først bygge en liten struktur, dette er veldig enkelt, men nødvendig, denne strukturen vil bestå av:
1- En mappe der vi vil lagre filene til prosjektet vårt.
2- En fil som heter server.js, vil denne filen, som navnet indikerer, være serveren som vi skal etablere forbindelsen i sanntid ved å bruke Websockets.
3- En fil som heter client.html, vil denne filen være grensesnittet for å kommunisere med serveren vår gjennom nettleseren, det er nødvendig å ha den samme slik at vi kan sende og motta tilsvarende informasjon.
Siden vi har definert strukturen vår nå kan vi begynne å ta noen linjer med kode, for dette må vi starte med å installere et eksternt bibliotek som heter ws i vårt miljø, siden dette er den som lar oss bruke den aktuelle protokollen. For å installere dette biblioteket må vi bare åpne konsollen Node.js, befinner vi oss i mappen der filene våre skal være, og vi plasserer følgende kommando:
 npm installer ws
Når vi utfører det, kan vi se følgende resultat i kommandokonsollen:

Når vi har installert biblioteket kan vi fortsette arbeidet vårt, nå i vår fil server.js Vi må skrive følgende kode, la oss først se hva den består av, så forklarer vi den:
 var WSServer = require ('ws'). Server, wss = ny WSServer ({port: 8085}); wss.on ('tilkobling', funksjon (socket) {socket.on ('melding', funksjon (msg) {console.log ('mottatt:', msg, '\ n', 'From IP:', socket. upgradeReq.connection.remoteAddress); if (msg === 'Hello') {socket.send ('Yes it works!');}}); socket.on ('close', function (code, desc) {console .log ('Frakoblet:' + kode + '-' + desc);});});
Det første vi gjør er å kreve biblioteket ws som vi nettopp installerte og umiddelbart i samme instruksjon ring rassen din Server, så lager vi en forekomst som vi skal lage en server som kjører på porten 8085Denne porten kan være hva vi har tilgang til. I dette tilfellet brukes 8085 slik at det ikke er noen konflikt med andre tjenester som for øyeblikket er i dette testmiljøet.
Siden vi har definert vår forekomst nå, skal vi bruke metoden.på () for tilkoblingshendelsen, deretter i Ring tilbake fra den passerer vi et objekt kalt stikkontakt, med dette vil vi motta meldingene fra klienten, og vi har skrevet en rutine om at hvis vi mottar ordet "Hallo" serveren vil returnere en melding, hvor vi igjen vil skrive ut noe i kommandokonsollen. Til slutt, hvis vi stenger tilkoblingen, vil vi bare ha en melding på konsollen.
Når vi har serveren vår er det på tide å bygge vår klient, for den i filen client.html vi skal definere en struktur der vi skal plassere html -koder og a JavaScript som vil fungere som en lenke til serveren vår. La oss se hvordan filen vår ser ut:
 Websockets Client Send
Den delen HTML er ganske enkelt, har vi en teksttype og en send -knapp, samt en div kalt output som er hvem som vil motta informasjonen fra serveren for å vise den til brukeren. Det interessante kommer i etiketten der det første vi gjør er å lage et objekt av typen WebSocket og vi angir ruten hvor du må finne den, i vårt tilfelle er det lokal vert: 8085 og så kan vi se at det vi gjorde i server.js. Vi kobler deretter våre sende-, tekst- og utgangselementer til variabler som vi kan bruke.
Det vi gjør er å definere hver av metodene vi kan motta fra serveren, så hver gang vi sender noe, blir det registrert i utdataene våre, alt takket være metoden send (). Den andre metoden vi bruker er onmessage () som bare aktiveres hvis serveren vår reagerer og vi legger til resultatet i HTML -koden vår.
Til slutt bruker vi metodene onclose () Y onerror (), den første gir oss en melding når forbindelsen med Websocket stoppes eller lukkes, og den andre informerer oss i tilfelle det har oppstått en feil. Med dette trenger vi bare å starte serveren i konsollen vår og få vårt eksempel til å fungere, for dette bruker vi følgende kommando:
 node server.js
Dette starter serveren, men for å bekrefte funksjonaliteten til koden vår må vi kjøre filen client.html i vår nettleser og skrive noe i tekstboksen og trykke på send -knappen, dette vil generere kommunikasjon med websocket og vi kan se svaret etter konsoll:

På bildet kan vi se hvordan kommandokonsollen skriver ut den mottatte meldingen til og med registrerer IP -adressen der den mottar dataene, dette var det vi programmerte i filen vår server.js, der vi også indikerte at hvis vi mottok ordet "Hei", ville vi sende en svarmelding som er akkurat det vi ser i nettleservinduet i det samme bildet. Hvis vi oppdaterer nettleseren, er tilkoblingen brutt, denne er også registrert av applikasjonen vår, la oss se:

Til slutt hvis vi stenger forbindelsen i konsollen med CTRL + C For å stoppe serveren skyter nettleseren vår feilbehandleren, og der vil vi se en ny melding:

Hvis vi har vært observatører, har vi kanskje lagt merke til noe viktig, på ingen tid for å motta svar måtte vi oppdatere nettleseren eller sende en forespørsel Ajax, alt har vært toveis direkte med WebSockets, dette er det som kalles sanntid.
Det vi har vist er en av de mest rudimentære og manuelle måtene som finnes, men det fungerer for oss å vite hvordan arbeidsflyten er, men den virkelige funksjonaliteten klar for produksjonsmiljøer oppnås med biblioteket socket.io, dette gjør det samme som vi gjorde i opplæringen, men i en mye mer kompakt og mindre utsatt for feil fra utvikleren, noe som gjør at vi bare kan fokusere på applikasjonens logikk og ikke så mye på den tekniske delen av den.
For installasjon socket.io vi må bare gjøre en npm installer socket.io og med dette fra depotet vil vi laste ned den siste stabile versjonen av biblioteket, som lar oss starte utviklingen vår.
Med dette har vi fullført denne opplæringen, som vi har tatt et viktig skritt innen Node.js ved å vite hvordan du bruker Websockets, blir denne teknologien viktigere for hver dag ettersom den hjelper oss med å lage applikasjoner som det aldri var tenkt på på nettet. Det er også viktig at vi dokumenterer oss selv om protokollen siden det er en måte å forstå potensialet til hva vi kan oppnå ved å utvikle applikasjoner.
wave wave wave wave wave