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:
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>');
};