Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałKrystian Wasilewski Został zmieniony 8 lat temu
1
Czyli jak stworzyć czat między serwerami Autor: Michał Krzempek
2
Aktualizacje: JSR-338 – JPA 2.1 JSR-339 – JAX-RS 2.0 JSR-340 – Java Servlet 3.1 JSR-341 – EL 3.0 JSR-342 – Java EE 7 JSR-343 – JMS 2.0 JSR-344 – JSF 2.2 JSR-345 – EJB 3.2 JSR-346 – CDI 1.1 Nowości: JJSR-352 – Batch Applications for the Java Platform JJSR-353 – Java API for JSON Processing JJSR-356 – Java API for WebSocket 2015-03-26www.mkrzempek.pl2
3
2015-03-26www.mkrzempek.pl3 Standard protokołu: IETF RFC 6455 - grudzień 2011 Standard W3C dla API przeglądarek – wrzesień 2011 Otwarcie połączenia TCP przez negocjacje protokołu nad protokołem HTTP Możliwa transmisja szyfrowana TLS (WSS) Transmisja pełna dwukierunkowa (Full-Duplex) Trzy typy ramek: sterujące, tekstowe (UTF-8), binarne Interfejs JavaScript: WebSocket Otwarcie połączenia przez konstruktor Uchwyty na zdarzenia (onopen, onclose, onerror, onmessage) Wysyłanie tekstu (String) lub danych binarnych (Blob, ArrayBuffer)
4
2015-03-26www.mkrzempek.pl4 Standard formatu: IETF RFC 4627 – lipiec 2006 Tekstowy Lekki Łatwy w interpretacji { "id": 1, "title": "Test", "authors": [ "Jan Kowalski", "Adam Nowak" ], "details": { "year": 2000 } }
5
2015-03-26www.mkrzempek.pl5 Server Endpoint Client Endpoint Client Endpoint Connection Session Message
6
2015-03-26www.mkrzempek.pl6 Server Endpoint Client Endpoint 1 Client Endpoint 1 Client Endpoint 2 Client Endpoint 2 Query Car
7
Kodowanie: o javax.websocket.Encoder.Text o javax.websocket.Encoder.TextStream o javax.websocket.Encoder.Binary o javax.websocket.Encoder.BinaryStream Dekodowanie: o javax.websocket.Decoder.Text o javax.websocket.Decoder.TextStream o javax.websocket.Decoder.Binary o javax.websocket.Decoder.BinaryStream 2015-03-26www.mkrzempek.pl7
8
Implementacja klasy javax.websocket.Endpoint o Metody do przeciążenia: onOpen, onClose, onError o Obsługa wiadomości przychodzących poprzez rejestrację obiektu klasy javax.websocket.MessageHandler w obiekcie sesji klasy javax.websocket.Session Adnotacje: o @javax.websocket.server.ServerEndpoint o @javax.websocket.server.PathParam o @javax.websocket.ClientEndpoint o @javax.websocket.OnOpen o @javax.websocket.OnClose o @javax.websocket.OnError o @javax.websocket.OnMessage 2015-03-26www.mkrzempek.pl8
9
Dostęp do kontenera: o javax.websocket.ContainerProvider o javax.websocket.WebSocketContainer Modyfikacja konfiguracji: o javax.websocket.server.ServerEndpointConfig.Configurator o javax.websocket.ClientEndpointConfig.Configurator Handshake przy otwieraniu połączenia: o javax.websocket.server.HandshakeRequest o javax.websocket.HandshakeResponse Ping/pong: o javax.websocket.PongMessage 2015-03-26www.mkrzempek.pl9
10
@ServerEndpoint o CDI - @ApplicationScoped o EJB - @Singleton, @Stateless, @Statefull Wstrzykiwanie zależności Bezpieczne połączenie (TLS) oraz uprawnienia ról konfigurowane w deskryptorze web.xml Dostęp do nagłówków żądania i odpowiedzi oraz do obiektu sesji javax.servlet.http.HttpSession podczas inicjalizacji połączenia (handshake) 2015-03-26www.mkrzempek.pl10
11
2015-03-26www.mkrzempek.pl11
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.