SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Node.js w aplikacjach czasu rzeczywistego
Jak łączyć mobile
i desktop?
Orange Boscy
Cel
Stworzenie gry umożliwiającej interakcję
z użytkownikiem w czasie rzeczywistym
Dom Boskich
Dom Boskich
automatyczne połączenia telefoniczne
sterowanie grami przez telefon
wirtualny spacer po domu Boskich
integracja z systemem wysyłki SMS
Dom Boskich
Symfony 2
FOSRestBundle - szybki sposób na pisanie REST API
NelmioApiBundle - dokumentowanie API
FOSUserBundle - uwierzytelnianie i autoryzacja użytkowników
DoctrineMongoDBBundle - Doctrine jako ODM dla MongoDB
Framework stanowiący podstawę aplikacji.
node.js
Wysoce skalowalne i elastyczne
środowisko programistyczne.
= +
MongoDB
łatwa komunikacja z Symfony 2 i node.js
elastyczna struktura danych
skalowalność
Jak to działa?
REST API
CALL APIKLIENT
Jak to działa?
REST API
CALL API KLIENT
Call API
informacje o zdarzeniach
synchronizacja pomiędzy aplikacją i telefonem
informacje o stanie połączenia 

(odebrał, oczekuje, zakończył)
Obsługa po stronie klienta
nasłuchiwanie w JSie eventów z serwera
przekazywanie eventów z serwera do flasha
za pomocą metod publicznych
przekazywanie eventów z flasha do JSa
i następnie na serwer
Podstawowa komunikacji
inicjalizacja połączenia po stronie klienta
próba nawiązania połączenia
z użytkownikiem
reakcja aplikacji flashowej na różne stany
połączenia
Liczby
180 000 wizyt
prawie 4 minuty spędzone w grze
obsługa 1700 jednoczesnych połączeń
Podsumowanie
skalowalność aplikacji
krótki czas produkcji
modułowość
Orange
Sprzęt Pewny
Siebie
Idea
Przedstawić nową ofertę Orange
w sposób interaktywny, za pomocą
bohatera, który przechodzi z ekranu
komputera na urządzenie mobilne
i zaczyna tam „rządzić”.
Cel
pozwala na wyświetlenie zsynchronizowanych
filmów jednocześnie na komputerach
i urządzeniach mobilnych
daje możliwość interakcji z wyświetlanymi
filmami za pomocą urządzenia mobilnego
Jak to działa?
Sprzęt pewny siebie
parowanie komputera stacjonarnego
z urządzeniem mobilnym
wyświetlanie filmów na obu urządzeniach
jednocześnie zsynchronizowanych do
0,1 sekundy
interakcje na filmach
Zadania backendowe
serwer http
parowanie urządzeń desktop <-> mobile
komunikacja między urządzeniami
Protokół HTTP
request -> response
brak wiadomości typu push od serwera do
klienta
Komunikacja dwukierunkowa w HTTP
Kiedyś:
polling
longpolling
streaming http
Teraz:
websockety
Websockety
komunikacja dwukierunkowa
wiadomości w czasie rzeczywistym
niewielkie obciążenie sieci
Socket.io
wsparcie starszych przeglądarek
automatyczny wybór odpowiedniej metody
komunikacji
Dlaczego node.js?
asynchroniczność
idealne sprawdza się z websocketami
npm – node packaged module
unifikacja kodu backend - frontend
Komunikacja desktop <-> serwer
Desktop
Socket
Server
Socket
2. Response (Render view)
4. Create room
5. Room created (random numer)
1. HTTP Request
3. Socket
Init
Komunikacja mobile <-> serwer
Mobile
Socket
Server
Socket
2. Response (Render view)
3. Send Code
1. HTTP Request
5. Socket
Init
4a. Invalid Code
4b. Valid Code
Komunikacja mobile <-> serwer
Mobile
Socket
Server
Socket
7. Joined
6. Join Room
Desktop
7. Mobile
joined
Komunikacja mobile <-> desktop
Desktop Mobile
Web Socket Server
Movie Event
Movie
Event
Movie
Event
Movie Event
Zadania frontowe
strona desktopowa
odtwarzacz filmów na mobile oparty
o wyeksportowane klatki i oddzielną ścieżkę
dźwiękową
komunikacja i synchronizacja mobile-desktop
Technologie frontowe
canvas
socket.io
Wyzwania
synchronizacja ścieżki dźwiękowej
z renderowanymi klatkami
synchronizacja odtwarzanej ścieżki na mobile
z desktopem
Safari Mobile
Liczby
bouce rate na poziomie 26 %
średni czas na stronie to prawie 3 minuty
ponad 2 300 klików w aspekty ofertowe na
stronie
Podsumowanie
Zawartość niniejszej prezentacji, a w szczególności koncepcje i sposób prezentacji treści, stanowią własność intelektualną VML Poland, chronioną
prawem zgodnie z ustawą z dnia 4 lutego 1994 r. o ochronie praw autorskich i praw pokrewnych. Wykorzystanie całości lub części niniejszego
utworu w jakichkolwiek celach wymaga pisemnej zgody właściciela. Niniejsza oferta zachowuje ważność przez okres 3 miesięcy od daty otrzymania.
Rafał Śledź
Lead Web Developer
rafal.sledz@vml.com
Dziękujemy!
Piotr Grabski-Gradziński
Technology Director
piotr.gradzinski@vml.com
Dymitr Malczik
Frontend/Flash Developer
dymitr.malczik@vml.com
Michał Szyćko
Software Engineer
michal.szycko@vml.com

Mais conteúdo relacionado

Semelhante a Jak łączyć mobile i desktop? Node.js w aplikacjach czasu rzeczywistego.

TV i video w Internecie
TV i video w InternecieTV i video w Internecie
TV i video w InternecieDivante
 
Microservieces and their communication (RabbitMQ/SIDEKIQ)
Microservieces and their communication (RabbitMQ/SIDEKIQ)Microservieces and their communication (RabbitMQ/SIDEKIQ)
Microservieces and their communication (RabbitMQ/SIDEKIQ)infakt
 
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwAsynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwLuke Adamczewski
 
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...Polcode
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz
 
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...Tomasz Kopacz
 
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyceO wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyceThe Software House
 
JS in the intelligent buildings @ meet.js Krk
JS in the intelligent buildings @ meet.js KrkJS in the intelligent buildings @ meet.js Krk
JS in the intelligent buildings @ meet.js KrkMateusz Ziarko
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.jsWojciech Kaniuka
 
Optymalizacja pracy front-end developera
Optymalizacja pracy front-end developeraOptymalizacja pracy front-end developera
Optymalizacja pracy front-end developeraWordCamp Polska
 
Optymalizacja pracy front-end developera
Optymalizacja pracy front-end developeraOptymalizacja pracy front-end developera
Optymalizacja pracy front-end developeraSzymon Kadzielawa
 
Windows phone 7 overview
Windows phone 7 overviewWindows phone 7 overview
Windows phone 7 overviewMatthew Halaba
 
Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do AspKelut
 
Reliable Event Delivery with Apache Kafka®
Reliable Event Delivery with Apache Kafka®Reliable Event Delivery with Apache Kafka®
Reliable Event Delivery with Apache Kafka®confluent
 
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...Laravel Poland MeetUp
 
Programowanie Windows Phone 7
Programowanie Windows Phone 7Programowanie Windows Phone 7
Programowanie Windows Phone 7daniel.plawgo
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychTomasz Borowski
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?PHPCon Poland
 

Semelhante a Jak łączyć mobile i desktop? Node.js w aplikacjach czasu rzeczywistego. (20)

Od Zera do Farmera
Od Zera do FarmeraOd Zera do Farmera
Od Zera do Farmera
 
TV i video w Internecie
TV i video w InternecieTV i video w Internecie
TV i video w Internecie
 
Microservieces and their communication (RabbitMQ/SIDEKIQ)
Microservieces and their communication (RabbitMQ/SIDEKIQ)Microservieces and their communication (RabbitMQ/SIDEKIQ)
Microservieces and their communication (RabbitMQ/SIDEKIQ)
 
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwAsynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
 
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
Asynchroniczny PHP & komunikacja czasu rzeczywistego z wykorzystaniem websock...
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
 
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyceO wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
 
JS in the intelligent buildings @ meet.js Krk
JS in the intelligent buildings @ meet.js KrkJS in the intelligent buildings @ meet.js Krk
JS in the intelligent buildings @ meet.js Krk
 
Meteor
MeteorMeteor
Meteor
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
 
Optymalizacja pracy front-end developera
Optymalizacja pracy front-end developeraOptymalizacja pracy front-end developera
Optymalizacja pracy front-end developera
 
Optymalizacja pracy front-end developera
Optymalizacja pracy front-end developeraOptymalizacja pracy front-end developera
Optymalizacja pracy front-end developera
 
Windows phone 7 overview
Windows phone 7 overviewWindows phone 7 overview
Windows phone 7 overview
 
Wprowadzenie Do Asp
Wprowadzenie Do AspWprowadzenie Do Asp
Wprowadzenie Do Asp
 
Reliable Event Delivery with Apache Kafka®
Reliable Event Delivery with Apache Kafka®Reliable Event Delivery with Apache Kafka®
Reliable Event Delivery with Apache Kafka®
 
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
WebRTC+Websockety - Jak stworzyłem aplikację do kamerek internetowych w Larav...
 
Programowanie Windows Phone 7
Programowanie Windows Phone 7Programowanie Windows Phone 7
Programowanie Windows Phone 7
 
Aplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowychAplikacje mobilne tworzone w technologiach webowych
Aplikacje mobilne tworzone w technologiach webowych
 
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
Silverlight i PHP - jak budować interfejs nowoczesnych aplikacji internetowych?
 

Jak łączyć mobile i desktop? Node.js w aplikacjach czasu rzeczywistego.