Conectarea la un server websocket dintr-o aplicație web

Sarcina: de a transfera date în timp real din aplicația dvs., conectate la serverul de socket pentru utilizatori. Acest lucru îi va permite, fără a reîncărca pagina, să vadă imediat aceste date.

Am avut sarcina de a face un fel de pagină pentru monitorizarea evenimentelor din aplicație. Pe pagina în timp real, ca o bandă live, există date despre evenimentele care apar.

Folosit de yii2 și Ratchet.

Pentru muncă trebuie să instalați o extensie pentru php mqq. Folosesc sistemul linux arhivă și am instalat pachetul din aur php-zmq. Apoi, folosind compozitorul, instalați Ratchet, React / ZMQ (necesită extensia php mqq):

Luăm un exemplu de pornire a unui server din documentația Ratchet și de a crea un controler pentru aplicația consola.

Mai departe, pe partea clientului, în vizualizarea (pe pagina de aplicație web avem nevoie), conectăm un fișier js extern,

Apoi, creați o clasă care va implementa WampServerInterface. Metoda onSubscribe se numește atunci când utilizatorul ("client") se conectează la server. În metoda onPushEventData, un eveniment este atârnat când serverul este pornit. Cu ajutorul acestuia vom "împinge" datele către client. În această clasă, simplu print_r () este potrivit pentru depanarea codului. Datele vor fi transmise la consola.

Dacă ați creat controlerul de pornire a serverului în folderul app / commands (implicit în aplicația de bază yii2 'controllerNamespace' => 'app \ commands'), îl puteți porni și puteți testa lucrarea. Dacă comanda nu este vizibilă atunci când solicitați php yii, atunci configurați controlerNamespace în configurație sau modul.

Puteți să vă asigurați că serverul este pornit utilizând comanda: sudo netstat -tulpn

De asemenea, verificați dacă acest lucru nu este "pus" pe serverul dvs. și site-ul funcționează. ) Când mergeți la pagina unde se produce conexiunea, consola nu trebuie să aibă o eroare de conectare la ws: //127.0.0.1: 8080.

Totul este aproape gata. Acum implementăm magia magiei în aplicația noastră web. Ne vom conecta la server și vom transfera datele acolo. În cazul meu, acestea sunt datele evenimentului care a avut loc.

Acum totul ar trebui să funcționeze. Sper că acest lucru îi ajută pe cineva și își va accelera munca. Indicarea erorilor, informații teoretice despre subiect și finalizare sunt binevenite.

Articole similare