integracja danych przesyłanych za pomocą web-socketów na przykladie biblioteki ratchet

12
INTEGRACJA DANYCH PRZESYŁANYCH ZA POMOCĄ WEB-SOCKETÓW NA PRZYKLADIE BIBLIOTEKI „RATCHET” STUDENT: NAZAR PATRYLO

Upload: nazar-patrylo

Post on 10-Jan-2017

88 views

Category:

Technology


0 download

TRANSCRIPT

integracja danych przestrzennych za pomoc Web Socket na przekladie biblioteki Ratchet

integracja danych przesYANYCH za pomoc Web-Socketw na przykladie biblioteki RatchetStudent: Nazar Patrylo

Znaczenie danychDane na stronie z czasem staj nie s aktualne;podstawie nieaktualnych danych mona podj bdne decyzj;Nie waciw decyzj prowadzi w kocu do strat finansowych, jeli ta aplikacja rozwizuje biznes zadania.Wyjcie? Trzeba pobiera dane z serwera w momencie ich otrzymania na serwer;Trzeba mie moliwo rozpocz wysyanie danych przez serwer.

Jak zaktualizowa dane ?Pierwszy sposb pyta co sekundy serwer o nowych danych. Przy tym im czciej , tym szybciej otrzymujemy aktualizacja danych.

Sposb drugi wykorzystanie technologii websockets. Takie podejcie daje mozliwo dla serwera nie zamyka poczenie i pozostawi je otwarte. W przypadku otrzymania zdarzenia serwer odesle jego do jednego lub wielu klientw.

technologia websocketWebSocket - jest technologi zapewniajc dwukierunkowy kana komunikacji za porednictwem jednego gniazda TCP. Stworzono j do komunikacji przegldarki internetowej z serwerem internetowym, ale rwnie dobrze moe zosta uyta w innych aplikacjach typu klient lub serwer.

Aby zainstalowa WebSocket-poczenia, klient wysya handshake-danie, a serwer odpowiada, jak pokazano w poniszym przykadzie:

Jakie przegldarki s obsugiwane?

KOMUNIKACJA Z SERWEREM W CZASIE RZECZYWISTYM (web-chat)Zastosowane technologie :Biblioteka - Ratchet - PHP WebSocketsPHP Framework - laravel 5.2Architektura aplikacji:Klient-serwer

kolejno wykonywania polczenia

Poniej schemat ilustruje kolejno wykonywania polczenia clienta z serwerem:

programowanie po czci serweraKorzystanie z zasobw - ratchetuse App\Classes\Socket\Base\BaseSocket;use Ratchet\ComponentInterface;Tworzenie klasy ChatSocket()Realizacja metody:onOpen()onMessage()onClose()onError()

programowanie po czci serweraKorzystanie z zasobw - ratchetuse Illuminate\Console\Command;use Ratchet\Http\HttpServer;use Ratchet\Server\IoServer;use Ratchet\WebSocket\WsServer;use App\Classes\Socket\ChatSocket;Tworzenie klasy ChatServer Realizacja metody handle()public function handle() { $this->info("Start server"); $server = IoServer::factory( new HttpServer( new WsServer( new ChatSocket() ) ) ,8080 ); $server->run(); }

programowanie po czci Clienta

Tworzenie witryny web serwisuTworzenie metody poloncenia z serweromvar conn = new WebSocket('ws://chat.dev:8080'); conn.onopen = function(e){ console.log('conection established!'); var massage = ': '+user_name+' !'; var data = {auth:true, massage:massage, user_name:user_name, id:user_id, name:'',color:user_color,type:'new-user'}; send(massage,data); console.log() $('.masssages').append(' '); };

wynikiem programu JEST:

bibliografiahttp://socketo.me/https://laravel.com/http://internetdevels.ua/blog/implementing-websockets-using-php-ratchet-library-or-tornado-web-serverhttps://habrahabr.ru/post/250085/http://ena.lp.edu.ua:8080/bitstream/ntb/20136/1/22-139-147.pdfhttps://habrahabr.ru/post/209864/http://en.wikipedia.org/wiki/Comet_(programming)http://en.wikipedia.org/wiki/WebSockethttps://github.com/nicokaiser/php-websocket