SlideShare uma empresa Scribd logo
1 de 12
INTEGRACJA DANYCH
PRZESYŁANYCH ZA POMOCĄ
WEB-SOCKETÓW NA PRZYKLADIE
BIBLIOTEKI „RATCHET”
STUDENT: NAZAR PATRYLO
ZNACZENIE DANYCH
• Dane na stronie — z czasem stają nie są aktualne;
• podstawie nieaktualnych danych można podjąć błędne decyzję;
• Nie właściwą decyzję prowadzi w końcu do strat finansowych,
jeśli ta aplikacja rozwiązuje biznes zadania.
• Wyjście? Trzeba pobierać dane z serwera w momencie ich
otrzymania na serwer;
• Trzeba mieć możliwość rozpocząć wysyłanie danych przez
serwer.
JAK ZAKTUALIZOWAĆ DANE ?
• Pierwszy sposób — pytać co sekundy serwer o nowych danych.
Przy tym im częściej , tym szybciej otrzymujemy aktualizacja
danych.
• Sposób drugi — wykorzystanie technologii websockets. Takie
podejście daje mozliwość dla serwera nie zamykać połączenie i
pozostawić je otwarte. W przypadku otrzymania zdarzenia
serwer odesle jego do jednego lub wielu klientów.
TECHNOLOGIA WEBSOCKET
WebSocket - jest technologią zapewniającą dwukierunkowy kanał
komunikacji za pośrednictwem jednego gniazda TCP. Stworzono
ją do komunikacji przeglądarki internetowej z serwerem
internetowym, ale równie dobrze może zostać użyta w innych
aplikacjach typu klient lub serwer.
Aby zainstalować WebSocket-połączenia, klient wysyła
handshake-żądanie, a serwer odpowiada, jak pokazano w
poniższym przykładzie:
JAKIE PRZEGLĄDARKI SĄ OBSŁUGIWANE?
KOMUNIKACJA Z SERWEREM W CZASIE
RZECZYWISTYM (WEB-CHAT)
• Zastosowane technologie :
• Biblioteka - Ratchet - PHP WebSockets
• PHP Framework - laravel 5.2
• Architektura aplikacji:
• Klient-serwer
KOLEJNOŚĆ WYKONYWANIA POLĄCZENIA
Poniżej schemat ilustruje kolejność wykonywania polączenia
clienta z serwerem:
PROGRAMOWANIE PO CZĘŚCI SERWERA
• Korzystanie z zasobów - ratchet
use AppClassesSocketBaseBaseSocket;
use RatchetComponentInterface;
• Tworzenie klasy – ChatSocket()
• Realizacja metody:
• onOpen()
• onMessage()
• onClose()
• onError()
PROGRAMOWANIE PO CZĘŚCI SERWERA
• Korzystanie z zasobów - ratchet
use IlluminateConsoleCommand;
use RatchetHttpHttpServer;
use RatchetServerIoServer;
use RatchetWebSocketWsServer;
use AppClassesSocketChatSocket;
• 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 CZĘŚCI CLIENTA
• Tworzenie witryny web serwisu
• Tworzenie metody poloncenia z serwerom
var 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('<div class="masage" ><p class="text"> Вітаємо в нашому чаті
</p></div>');
};
WYNIKIEM PROGRAMU JEST:
BIBLIOGRAFIA
• http://socketo.me/
• https://laravel.com/
• http://internetdevels.ua/blog/implementing-websockets-using-php-ratchet-
library-or-tornado-web-server
• https://habrahabr.ru/post/250085/
• http://ena.lp.edu.ua:8080/bitstream/ntb/20136/1/22-139-147.pdf
• https://habrahabr.ru/post/209864/
• http://en.wikipedia.org/wiki/Comet_(programming)
• http://en.wikipedia.org/wiki/WebSocket
• https://github.com/nicokaiser/php-websocket

Mais conteúdo relacionado

Destaque

Arts al carrer, la mercè
Arts al carrer, la mercèArts al carrer, la mercè
Arts al carrer, la mercèclubsocial
 
Teresa espinoza 3_b_t01
Teresa espinoza 3_b_t01Teresa espinoza 3_b_t01
Teresa espinoza 3_b_t01magaliespinoza
 
Proyectos de investigación guia icfes
Proyectos de investigación  guia icfesProyectos de investigación  guia icfes
Proyectos de investigación guia icfesquimipuro
 
Niveles de-escritura por candoli, julieta belen
Niveles de-escritura por candoli, julieta belenNiveles de-escritura por candoli, julieta belen
Niveles de-escritura por candoli, julieta belenjulieta candoli
 
ZCPE - PHP Conference 2015
ZCPE   - PHP Conference 2015ZCPE   - PHP Conference 2015
ZCPE - PHP Conference 2015Matheus Marabesi
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileWaldyr Felix
 
Land Surveyors, FEMA and Other Flood Zone Issues
Land Surveyors, FEMA and Other Flood Zone IssuesLand Surveyors, FEMA and Other Flood Zone Issues
Land Surveyors, FEMA and Other Flood Zone Issuesgfquinn
 
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicCurso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicFelipe Blini
 

Destaque (11)

Arts al carrer, la mercè
Arts al carrer, la mercèArts al carrer, la mercè
Arts al carrer, la mercè
 
2363_001
2363_0012363_001
2363_001
 
Teresa espinoza 3_b_t01
Teresa espinoza 3_b_t01Teresa espinoza 3_b_t01
Teresa espinoza 3_b_t01
 
Proyectos de investigación guia icfes
Proyectos de investigación  guia icfesProyectos de investigación  guia icfes
Proyectos de investigación guia icfes
 
A Revolução dos Middlewares
A Revolução dos MiddlewaresA Revolução dos Middlewares
A Revolução dos Middlewares
 
Niveles de-escritura por candoli, julieta belen
Niveles de-escritura por candoli, julieta belenNiveles de-escritura por candoli, julieta belen
Niveles de-escritura por candoli, julieta belen
 
Ptdi capinota2016
Ptdi capinota2016Ptdi capinota2016
Ptdi capinota2016
 
ZCPE - PHP Conference 2015
ZCPE   - PHP Conference 2015ZCPE   - PHP Conference 2015
ZCPE - PHP Conference 2015
 
Ionic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento MobileIonic + Cordova para Desenvolvimento Mobile
Ionic + Cordova para Desenvolvimento Mobile
 
Land Surveyors, FEMA and Other Flood Zone Issues
Land Surveyors, FEMA and Other Flood Zone IssuesLand Surveyors, FEMA and Other Flood Zone Issues
Land Surveyors, FEMA and Other Flood Zone Issues
 
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e IonicCurso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
Curso de Desenvolvimento de Aplicativos Híbridos com PhoneGap/Cordova, e Ionic
 

Semelhante a integracja danych przesyłanych za pomocą Web-Socketów na przykladie biblioteki Ratchet

4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...PROIDEA
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweWydawnictwo Helion
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PROIDEA
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPWydawnictwo Helion
 
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacjiProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacjiAntoni Orfin
 
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-PolskaModsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-PolskaLeszek Mi?
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegroallegro.tech
 
Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?javOnet
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftBiznes 2.0
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureWebhosting.pl
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychAJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychWydawnictwo Helion
 
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Logicaltrust pl
 
PLNOG23 - Bartosz Belter & dr hab. inż. Andrzej Bęben - Techniki przetwarzani...
PLNOG23 - Bartosz Belter & dr hab. inż. Andrzej Bęben - Techniki przetwarzani...PLNOG23 - Bartosz Belter & dr hab. inż. Andrzej Bęben - Techniki przetwarzani...
PLNOG23 - Bartosz Belter & dr hab. inż. Andrzej Bęben - Techniki przetwarzani...PROIDEA
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaJakub Hajek
 

Semelhante a integracja danych przesyłanych za pomocą Web-Socketów na przykladie biblioteki Ratchet (20)

4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
4Developers 2015: Szybciej niż Struś Pędziwiatr - WebSockets w aplikacjach we...
 
Delphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetoweDelphi. Techniki bazodanowe i internetowe
Delphi. Techniki bazodanowe i internetowe
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
 
ASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHPASP.NET 3.5 dla programistów PHP
ASP.NET 3.5 dla programistów PHP
 
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacjiProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa aplikacji
 
Jaki hosting pod wordpressa
Jaki hosting pod wordpressaJaki hosting pod wordpressa
Jaki hosting pod wordpressa
 
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-PolskaModsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
Modsecurity-czy-Twoj-WAF-to-potrafi-Leszek-Mis-Linux-Polska
 
Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
3
33
3
 
Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?Jak podwoić wartość kodu .NET?
Jak podwoić wartość kodu .NET?
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Urządzenia intersieci tworzące Internet
Urządzenia intersieci tworzące InternetUrządzenia intersieci tworzące Internet
Urządzenia intersieci tworzące Internet
 
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowychAJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
AJAX i PHP. Tworzenie interaktywnych aplikacji internetowych
 
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
Bezpieczenstwo Portali Spolecznosciowych W Ujeciu Robakow Web 20 Pingwinaria2009
 
PLNOG23 - Bartosz Belter & dr hab. inż. Andrzej Bęben - Techniki przetwarzani...
PLNOG23 - Bartosz Belter & dr hab. inż. Andrzej Bęben - Techniki przetwarzani...PLNOG23 - Bartosz Belter & dr hab. inż. Andrzej Bęben - Techniki przetwarzani...
PLNOG23 - Bartosz Belter & dr hab. inż. Andrzej Bęben - Techniki przetwarzani...
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólna
 
Provident
ProvidentProvident
Provident
 

integracja danych przesyłanych za pomocą Web-Socketów na przykladie biblioteki Ratchet

  • 1. INTEGRACJA DANYCH PRZESYŁANYCH ZA POMOCĄ WEB-SOCKETÓW NA PRZYKLADIE BIBLIOTEKI „RATCHET” STUDENT: NAZAR PATRYLO
  • 2. ZNACZENIE DANYCH • Dane na stronie — z czasem stają nie są aktualne; • podstawie nieaktualnych danych można podjąć błędne decyzję; • Nie właściwą decyzję prowadzi w końcu do strat finansowych, jeśli ta aplikacja rozwiązuje biznes zadania. • Wyjście? Trzeba pobierać dane z serwera w momencie ich otrzymania na serwer; • Trzeba mieć możliwość rozpocząć wysyłanie danych przez serwer.
  • 3. JAK ZAKTUALIZOWAĆ DANE ? • Pierwszy sposób — pytać co sekundy serwer o nowych danych. Przy tym im częściej , tym szybciej otrzymujemy aktualizacja danych. • Sposób drugi — wykorzystanie technologii websockets. Takie podejście daje mozliwość dla serwera nie zamykać połączenie i pozostawić je otwarte. W przypadku otrzymania zdarzenia serwer odesle jego do jednego lub wielu klientów.
  • 4. TECHNOLOGIA WEBSOCKET WebSocket - jest technologią zapewniającą dwukierunkowy kanał komunikacji za pośrednictwem jednego gniazda TCP. Stworzono ją do komunikacji przeglądarki internetowej z serwerem internetowym, ale równie dobrze może zostać użyta w innych aplikacjach typu klient lub serwer. Aby zainstalować WebSocket-połączenia, klient wysyła handshake-żądanie, a serwer odpowiada, jak pokazano w poniższym przykładzie:
  • 5. JAKIE PRZEGLĄDARKI SĄ OBSŁUGIWANE?
  • 6. KOMUNIKACJA Z SERWEREM W CZASIE RZECZYWISTYM (WEB-CHAT) • Zastosowane technologie : • Biblioteka - Ratchet - PHP WebSockets • PHP Framework - laravel 5.2 • Architektura aplikacji: • Klient-serwer
  • 7. KOLEJNOŚĆ WYKONYWANIA POLĄCZENIA Poniżej schemat ilustruje kolejność wykonywania polączenia clienta z serwerem:
  • 8. PROGRAMOWANIE PO CZĘŚCI SERWERA • Korzystanie z zasobów - ratchet use AppClassesSocketBaseBaseSocket; use RatchetComponentInterface; • Tworzenie klasy – ChatSocket() • Realizacja metody: • onOpen() • onMessage() • onClose() • onError()
  • 9. PROGRAMOWANIE PO CZĘŚCI SERWERA • Korzystanie z zasobów - ratchet use IlluminateConsoleCommand; use RatchetHttpHttpServer; use RatchetServerIoServer; use RatchetWebSocketWsServer; use AppClassesSocketChatSocket; • 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(); }
  • 10. PROGRAMOWANIE PO CZĘŚCI CLIENTA • Tworzenie witryny web serwisu • Tworzenie metody poloncenia z serwerom var 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('<div class="masage" ><p class="text"> Вітаємо в нашому чаті </p></div>'); };
  • 12. BIBLIOGRAFIA • http://socketo.me/ • https://laravel.com/ • http://internetdevels.ua/blog/implementing-websockets-using-php-ratchet- library-or-tornado-web-server • https://habrahabr.ru/post/250085/ • http://ena.lp.edu.ua:8080/bitstream/ntb/20136/1/22-139-147.pdf • https://habrahabr.ru/post/209864/ • http://en.wikipedia.org/wiki/Comet_(programming) • http://en.wikipedia.org/wiki/WebSocket • https://github.com/nicokaiser/php-websocket