Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Cloud Services
Code

Să începem cu Pusher: utilizarea canalelor de prezență

by
Length:ShortLanguages:
This post is part of a series called Get Started With Pusher.
Get Started With Pusher: Client Events
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Romanian (Română) translation by C. Dan (you can also view the original English article)

În această serie, vom învăța despre Channels de la Pusher (canalele de la Pusher), o platformă care vă permite să dați în timp real utilizatorilor experiența fluentă pe care și-o doresc.

Canalele de prezență se bazează pe securitatea furnizată de canalele private, dar acestea adaugă avantajul de a ști ce utilizatori sunt abonați și conectați la acel canal. Cea mai interesantă parte este cât de ușoară este implementarea și folosirea canalele de prezență, și devine chiar mai ușor dacă ați configurat deja aplicația să utilizeze canalele private. În continuare, în acest post veți învăța să utilizați canalele de prezență.

O aplicație de chat și mai bună 

Aplicația noastră de chat utilizează în prezent un canal privat pentru a facilita instant comunicarea client/server. Deci, configurarea aplicației noastre de a folosi un canal de prezență va fi extrem de ușor de realizat. Să începem cu aplicația server.

Modificarea serverului

Pentru a utiliza un canal privat, am configurat un punct final pentru a ne asigura că un utilizator este autentificat în aplicația noastră. Acest punct final execută ChannelsController de la metoda authorizeUser(), și apelează metoda socket_auth () a bibliotecii Pusher pentru a ajuta la autentificarea utilizatorului. Pentru a utiliza un canal de prezență, trebuie să modificăm authorizeUser () pentru a apela metoda presence_auth () a bibliotecii Pusher, astfel:

Dar schimbarea numelui metodei este doar prima modificare; de asemenea, trebuie să furnizăm presence_auth () împreună cu identificatorul unic al utilizatorului și orice informații suplimentare pe care dorim să le furnizăm despre utilizator. Codul de mai sus stochează aceste date suplimentare de utilizator în variabila $presenceData și trece ca argumentul final la presence_auth ().

În plus, trebuie să modificăm metoda sendMessage (). Prima schimbare se face asupra numelui canalului. La fel ca și cu toate celelalte nume ale noastre, trebuie să adăugăm un prefix la numele canalului pentru a desemna tipul de canal pe care dorim să îl utilizăm: în acest caz presence-, după cum se arată în următorul cod.

De asemenea, putem modifica datele pe care le trimitem cu evenimentul - în loc să furnizăm numele utilizatorului care a inițiat evenimentul, putem include ID-ul utilizatorului.

Pentru că vom folosi un canal de prezență, putem căuta numele de utilizator de la client, iar această mică schimbare va reduce dimensiunea datelor care trec prin rețea.

Schimbarea clientului

Obiectul channel pentru client conține tot ce avem nevoie pentru a lucra cu canalul subscris, iar interogarea datelor de utilizator nu face excepție. Obiectul nostru channel are o proprietate numita members pe care o putem folosi pentru a prelua informații specifice utilizatorului. Vom folosi acest obiect în rutina de tratare a evenimentului send-message, astfel:

Aici, apelăm this.channels.members.get() și transmitem ID-ul utilizatorului (amintiți-vă, acum aplicația noastră de server  furnizează ID-ul în loc de nume). Această metodă returnează un obiect cu proprietatea info, iar acest obiect info conține toate informațiile suplimentare pe care le-am furnizat în variabila $presenceData din metoda authorizeUser() de pe server. Deci, în codul de mai sus, vom prelua numele utilizatorului cu user.info.name.

De asemenea, putem modifica metoda trigger() pentru a include informații despre utilizatorul care a inițiat evenimentul de alarmă pentru client. Pentru preluarea datelor utilizatorului înregistrat curent, vom utiliza proprietatea me, așa cum se arată în următorul cod:

În acest cod, adăugăm o proprietate user la incărcarea evenimentului și o setăm la obiectul utilizatorului autentificat. Acest lucru înseamnă că putem modifica rutina de tratare a evenimentelor client-send-alarm pentru a include numele utilizatorului impreună cu mesajul de alarmă, astfel:

In continuare, vom folosi data.user.info.name pentru a accesa numele utilizatorului, astfel încât să putem vedea care utilizator a trimis alarma, așa după cumurmează:

screen showing which user sent the alarm

Concluzie

Utilizarea canalelor de prezență nu numai că oferă aplicației dvs. securitatea sporită a unui canal anonim, dar totodată oferă și posibilitatea de a interoga datele utilizatorilor pentru utilizatorii care se abonează la canal. Cu Channels de la Pusher, este incredibil de ușor de adăugat aplicației dvs. o comunicare securizătă, în timp real, și cu multiple facilități.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.