Websocket ar Node.js

Satura rādītājs
Tīmekļa lietojumprogrammas ir mainījušās un attīstās, tāpēc lietotāju vajadzības atšķiras no tā, kad tīklā tika izveidots pirmais savienojuma protokols. Līdz ar to protokols HTTP gadu gaitā ir attīstījusies, bet vēl nav sasniegusi reālā laika līmeni, piemēram, savienojumu TCP starp divām komandām.
Šie ierobežojumi, nevis kaitējums izstrādātājiem un lietotājiem, ir kļuvuši par motivācijas un radošuma avotu, radot risinājumus, kas ļauj mums ne tikai līdzināties pārraides sistēmai reālā laikā, bet arī izmantojot HTTP dariet to gandrīz dabiski.
WebsocketŠī ir vieta, kur Websocket, salīdzinoši jauns protokols, ko atbalsta tikai vismodernākās pārlūkprogrammas, kas ļauj mums noņemt HTTP visus ierobežojumus un tādējādi efektīvi sazināties, izmantojot galvenes GŪT.
Websocket Tā joprojām ir aktīvas nobriešanas periodā, tāpēc ir ļoti iespējams, ka mēs to neatradīsim jaunos risinājumos, par laimi Node.js mums jau ir daži rīki, kas ļauj mums ar tiem rīkoties, nepaļaujoties uz savu izdomu, lai izveidotu zemāka līmeņa rīkus.
PrasībasŠī ir uzlabota apmācība, tāpēc vispirms mums būs nepieciešama funkcionāla instalēšana Node.js Mūsu sistēmā mēs varam apskatīt šo pamācību, pirms turpināt tajā iedziļināties, turklāt mums būs nepieciešamas administratora atļaujas, lai varētu instalēt bibliotēkas, kuras mēs izmantosim. Mums jābūt pazīstamiem ar jēdzieniem JavaScript piemēram atzvani un anonīmas funkcijas. Visbeidzot, mums ir jābūt tādam teksta redaktoram kā Cildens teksts kas ļauj mums rakstīt dažādus piemērus.
Lai sāktu izveidot lietojumprogrammu, kas ļauj mums to izmantot Tīmekļa ligzdas Vispirms mums ir jāizveido neliela struktūra, tas ir ļoti vienkārši, bet nepieciešams, šī struktūra sastāvēs no:
1- Mape, kurā mēs glabāsim sava projekta failus.
2- Fails ar nosaukumu server.js, šis fails, kā norāda tā nosaukums, būs serveris, caur kuru mēs izveidosim savienojumu reāllaikā, izmantojot Tīmekļa ligzdas.
3- Fails ar nosaukumu klients.html, šis fails būs saskarne, lai sazinātos ar mūsu serveri, izmantojot pārlūkprogrammu, tam jābūt tādam pašam, lai mēs varētu nosūtīt un saņemt atbilstošo informāciju.
Tā kā mūsu struktūra ir definēta tagad, mēs varam sākt ņemt dažas koda rindas, tāpēc mums jāsāk, instalējot ārēju bibliotēku ar nosaukumu ws mūsu vidē, jo tas ir tas, kas ļaus mums izmantot attiecīgo protokolu. Lai instalētu šo bibliotēku, mums vienkārši jāatver konsole Node.js, mēs atrodamies mapē, kurā būs mūsu faili, un mēs ievietojam šādu komandu:
 npm instalēt ws
Kad mēs to izpildām, mūsu komandu konsolē var redzēt šādu rezultātu:

Kad bibliotēka ir instalēta, mēs varam turpināt darbu, tagad savā failā server.js Mums ir jāraksta šāds kods, vispirms redzēsim, no kā tas sastāv, un tad mēs to izskaidrosim:
 var WSServer = pieprasīt ('ws'). Serveris, wss = jauns WSServer ({ports: 8085}); wss.on ('savienojums', funkcija (ligzda) {socket.on ('ziņojums', funkcija (msg) {console.log ('Saņemts:', ziņojums, '\ n', 'No IP:', ligzda. upgradeReq.connection.remoteAddress); if (msg === 'Hello') {socket.send ('Yes it works!');}}); socket.on ('close', function (code, desc) {console .log ('Bezsaistē:' + kods + '-' + apraksts);});});
Pirmā lieta, ko mēs darām, ir pieprasīt bibliotēku ws ka mēs tikko instalējām un uzreiz tajā pašā instrukcijā zvanām jūsu klasei Serveris, tad mēs izveidojam instanci, ar kuru mēs izveidosim serveri, kas darbojas ostā 8085Šis ports var būt jebkurš, kam mums ir piekļuve.Šajā gadījumā 8085 tiek izmantots, lai nebūtu pretrunu ar citiem pakalpojumiem, kas pašlaik atrodas šajā testa vidē.
Tā kā tagad esam definējuši savu instanci, mēs izmantosim šo metodi.ieslēgts () savienojuma notikumam, tad atzvani no tā mēs ejam garām objektam ar nosaukumu kontaktligzda, ar to mēs saņemsim ziņas no klienta un esam uzrakstījuši rutīnu, ka, ja mēs saņemam vārdu "Sveiki" serveris atgriezīs ziņu, kur savukārt mēs arī kaut ko izdrukāsim komandu konsolē. Visbeidzot, ja mēs pārtraucam savienojumu, konsolē būs tikai viens ziņojums.
Kad mums ir mūsu serveris, ir pienācis laiks izveidot savu klientu failā klients.html mēs definēsim struktūru, kurā ievietosim html tagus un a JavaScript kas darbosies kā saite uz mūsu serveri. Apskatīsim, kā izskatās mūsu fails:
 Websockets klienta iesniegšana
Daļa HTML ir diezgan vienkāršs, mums ir teksta tipa ievade un poga Iesniegt, kā arī a div sauc par izvadi, kas saņems informāciju no servera, lai to parādītu lietotājam. Interesanta lieta ir etiķetē, kur pirmā lieta, ko mēs darām, ir izveidot šāda veida objektu WebSocket un mēs norādām maršrutu, kur tas jāatrod, mūsu gadījumā tas ir vietējais saimnieks: 8085 un tāpēc mēs varam redzēt, ka tas, ko mēs darījām server.js. Pēc tam mēs saistām savus sūtīšanas, teksta un izvades elementus ar mainīgajiem, kurus varam izmantot.
Tad mēs definējam katru no metodēm, ko varam saņemt no servera, tāpēc katru reizi, kad kaut ko sūtīsim, tas tiks ierakstīts mūsu izvadē, pateicoties metodei sūtīt (). Otra mūsu izmantotā metode ir ziņojums () kas tiek aktivizēts tikai tad, ja mūsu serveris reaģē un rezultātu pievienojam HTML.
Visbeidzot, mēs izmantojam metodes tuvu () Y onerror (), pirmais dod mums ziņu, kad savienojums ar Websocket tiek apturēta vai aizvērta, un otrā informē mūs, ja ir radusies kāda kļūda. Tādējādi mums tikai jāuzsāk serveris mūsu konsolē un jālieto mūsu piemērs, lai to izdarītu, mēs izmantojam šādu komandu:
 mezgls server.js
Tādējādi tiks palaists serveris, bet, lai pārbaudītu mūsu koda funkcionalitāti, mums jāizvēlas mūsu client.html fails mūsu izvēlētajā pārlūkprogrammā, teksta lodziņā jāraksta kaut kas un jānospiež poga Sūtīt, tas radīs saziņu ar tīmekļa ligzda un mēs varam redzēt konsolē sniegto atbildi:

Attēlā mēs varam redzēt, kā komandu konsole izdrukā saņemto ziņojumu, pat reģistrē IP adresi, no kuras tā saņem datus, to mēs ieprogrammējām savā failā server.js, kur mēs arī norādījām, ka, saņemot vārdu “Sveiki”, mēs nosūtīsim atbildes ziņojumu, kas ir tieši tas, ko mēs redzam pārlūkprogrammas logā tajā pašā attēlā. Tagad, ja atsvaidzinām pārlūkprogrammu, savienojums ir bojāts, to reģistrē arī mūsu lietojumprogramma, redzēsim:

Visbeidzot, ja slēdzam savienojumu mūsu konsolē ar CTRL + C Lai apturētu serveri, mūsu pārlūkprogramma aktivizē kļūdu apstrādātāju, un tur mēs redzēsim jaunu ziņojumu:

Ja esam bijuši novērotāji, iespējams, esam pamanījuši kaut ko svarīgu, lai saņemtu atbildes, mums nekad nav bijis jāatsvaidzina pārlūks vai jāiesniedz pieprasījums. Ajax, viss ir bijis divvirzienu tieši ar WebSockets, to sauc par reālo laiku.
Tas, ko mēs esam parādījuši, ir viens no visvienkāršākajiem un manuālākajiem veidiem, kas pastāv, tomēr mums ir jāzina, kāda ir darbplūsma, bet reālā funkcionalitāte, kas ir gatava ražošanas videi, tiek sasniegta ar bibliotēku ligzda.io, tas dara to pašu, ko mēs darījām apmācībā, bet daudz kompaktākā un mazāk pakļauta izstrādātāja kļūdām, kas ļauj mums koncentrēties tikai uz lietojumprogrammas loģiku, nevis tik daudz uz tās tehnisko daļu.
Instalēšanai ligzda.io mums vienkārši jādara a npm instalējiet socket.io un līdz ar to no krātuves mēs lejupielādēsim jaunāko stabilo bibliotēkas versiju, kas ļaus mums sākt savu attīstību.
Ar to mēs esam pabeiguši šo apmācību, ar kuru mēs esam spēruši svarīgu soli Node.js zinot, kā lietot Tīmekļa ligzdas, šī tehnoloģija katru dienu kļūst arvien nozīmīgāka, jo tā palīdz mums izveidot lietojumprogrammas, par kurām tīmeklī nekad nebija padomāts. Ir arī svarīgi, lai mēs dokumentētu sevi par protokolu, jo tas ir veids, kā saprast potenciālu, ko mēs varam sasniegt, vienkārši izstrādājot lietojumprogrammas.
wave wave wave wave wave