Gorski / Lo Iacono / Nguyen | WebSockets | E-Book | sack.de
E-Book

E-Book, Deutsch, 281 Seiten

Gorski / Lo Iacono / Nguyen WebSockets

Moderne HTML5-Echtzeitanwendungen entwickeln

E-Book, Deutsch, 281 Seiten

ISBN: 978-3-446-44438-6
Verlag: Carl Hanser
Format: PDF
Kopierschutz: Wasserzeichen (»Systemvoraussetzungen)



WebSockets //
- Für Webentwickler mit Grundkenntnissen, Studenten der Informatik, Softwarearchitekten und IT-Konzepter
- Umfassender Einstieg in die WebSocket-Technik: Grundlagen, Performance, Sicherheit, Test-Verfahren
- Mit zahlreichen Beispielen auf Basis ganz unterschiedlicher Werkzeuge, Technologien, Sprachen und Frameworks
- Die Beispiele aus dem Buch sowie Infos zu aktuellen Entwicklungen können auf der Website der Autoren heruntergeladen werden




Dieses Buch führt Sie umfassend in die WebSocket-Technik und die damit einhergehenden neuen Entwicklungsmöglichkeiten ein. Unter den zahlreichen exemplarischen Anwendungen finden sich Beispiele auf Basis von Node.js, Vert.x, und JSR 356, als Programmiersprachen werden Java und JavaScript eingesetzt.


Nach einer Einführung in die notwendigen Grundlagen von HTTP lernen Sie zunächst die Mechanismen für höhere Interaktivität und Echtzeitfähigkeit bei Webanwendungen kennen. Weiter geht es mit dem WebSocket-Protokoll und der WebSocket-API. An dieser Stelle werden Sie mit JavaScript erste Beispiele für WebSocket-Clientanwendungen in Webbrowsern programmieren. Es folgen WebSocket-Implementierungen auf der Serverseite auf Basis gebräuchlicher Frameworks.


Weitere Themen sind das Testen von verteilten Web-Socket-basierten Applikationen, Performance-Eigenschaften und – ganz wichtig – Sicherheitsaspekte, insbesondere wenn die Anwendung aus verteilten Komponenten zusammengesetzt ist, die über offene Netze miteinander gekoppelt sind.


Schließlich werden Sie verschiedene größere und vollständige Anwendungen implementieren: eine generische Fernsteuerung für Webanwendungen, ein klassisches Chatsystem, eine Heatmap für Usability-Tests und eine Überwachungskamera per Webcam.


AUS DEM INHALT //
HTTP-Grundlagen // Techniken für höhere Interaktivität und Echtzeitfähigkeit // Die Leitung: Das IETF WebSocket-Protokoll // Der Client: Die W3C WebSocket-API // Der Server: Sprachliche Vielfalt // WebSockets in der Praxis: Performance & Skalierbarkeit, Sicherheit, Gefahren & Probleme // Vier komplette Beispielanwendungen
Gorski / Lo Iacono / Nguyen WebSockets jetzt bestellen!

Weitere Infos & Material


1;Inhalt;7
2;Vorwort;11
3;Danksagung;13
4;1 Einleitung;15
4.1;1.1 Wie ist das Buch strukturiert?;17
4.2;1.2 Wer sollte das Buch lesen?;17
4.3;1.3 Wie sollte mit dem Buch gearbeitet werden?;18
5;2 HTTP: Hypertext Transfer Protocol;19
5.1;2.1 Grundlegendes;19
5.1.1;2.1.1 ISO/OSI-Referenzmodell für Kommunikationssysteme;20
5.1.2;2.1.2 Vereinfachtes OSI-Modell;22
5.1.3;2.1.3 Dienst;23
5.1.4;2.1.4 Protokoll;24
5.1.5;2.1.5 Kommunikationsfluss;25
5.2;2.2 HTTP en détail;27
5.2.1;2.2.1 Kommunikationsablauf;27
5.2.2;2.2.2 Textbasiert;28
5.2.3;2.2.3 Aufbau von Request-Nachrichten und Protokollelemente;30
5.2.4;2.2.4 Aufbau von Response-Nachrichten und Statuscodes;34
5.2.5;2.2.5 Zustandslos;38
6;3 Höhere Interaktivität und Echtzeitfähigkeit;39
6.1;3.1 XMLHttpRequest (XHR);39
6.2;3.2 Polling;41
6.3;3.3 Long-Polling;42
6.4;3.4 Comet;43
6.5;3.5 Server-Sent Events;45
6.6;3.6 Bewertung der Verfahren;47
7;4 Die Leitung: Das IETF WebSocket-Protokoll;49
7.1;4.1 Was bisher geschah;49
7.2;4.2 Opening-Handshake – WebSocket-Verbindung aufbauen;50
7.3;4.3 WebSocket-Frames;53
7.4;4.4 Fragmentierung;56
7.5;4.5 Maskierung;57
7.6;4.6 Datenframes;59
7.6.1;4.6.1 Frames mit Textdaten;59
7.6.2;4.6.2 Frames mit Binärdaten;61
7.7;4.7 Control-Frames;62
7.7.1;4.7.1 Ping-Frame;62
7.7.2;4.7.2 Pong-Frame;63
7.7.3;4.7.3 Close-Frame;63
7.8;4.8 Closing-Handshake – WebSocket-Verbindung schließen;67
7.9;4.9 Tools zur Protokollanalyse;68
7.9.1;4.9.1 Wireshark;68
7.9.2;4.9.2 Fiddler;74
7.9.3;4.9.3 Chrome Developer Tools;82
7.9.4;4.9.4 Chrome Network Internals;84
8;5 Der Client: Die W3C WebSocket-API;89
8.1;5.1 Was bisher geschah;89
8.2;5.2 Browserunterstützung;90
8.3;5.3 Namensschema;93
8.4;5.4 Objekterzeugung und Verbindungsaufbau;94
8.5;5.5 Zustände;95
8.6;5.6 Event-Handler;97
8.7;5.7 Erstes vollständiges Progrämmchen;100
8.8;5.8 Attribute;103
8.9;5.9 Datenübertragung;106
8.9.1;5.9.1 Übertragung textbasierter Daten;107
8.9.2;5.9.2 Übertragung binärer Daten;108
8.10;5.10 Verbindungsabbau;110
8.10.1;5.10.1 Verbindung beenden;110
8.10.2;5.10.2 Close-Event;110
8.11;5.11 Ausblick: HTTP 2.0/SPDY;111
9;6 Der Server: Sprachliche Vielfalt;115
9.1;6.1 Übersicht verfügbarer WebSocket-Implementierungen;115
9.2;6.2 Node.js;116
9.2.1;6.2.1 Installation von Node.js ;118
9.2.2;6.2.2 WebSocket.io;120
9.2.3;6.2.3 Socket.io;123
9.2.4;6.2.4 WebSocket-Node;127
9.3;6.3 Vert.x;133
9.4;6.4 Play Framework;136
9.4.1;6.4.1 Installation;136
9.4.2;6.4.2 Anlegen eines neuen Play-Projekts;137
9.4.3;6.4.3 Anatomie einer Play-Anwendung;137
9.4.4;6.4.4 Die Play-Konsole;138
9.4.5;6.4.5 Controller in Play;138
9.4.6;6.4.6 Views in Play;139
9.4.7;6.4.7 Routes in Play;140
9.4.8;6.4.8 Vom Controller zur View;141
9.4.9;6.4.9 Erstellen eines Echo-Servers in Play ;143
9.5;6.5 JSR 356;146
9.5.1;6.5.1 JSR 356-basierender WebSocket-Server;150
9.5.2;6.5.2 JSR 356-basierender WebSocket-Client;154
10;7 WebSockets in der Praxis;161
10.1;7.1 Performance und Skalierbarkeit;161
10.1.1;7.1.1 Test-Echo-Server;162
10.1.2;7.1.2 Testclient für die Auslastung;165
10.1.3;7.1.3 Testclient für die Zeitmessung;166
10.1.4;7.1.4 Einrichtung der Testumgebung;167
10.1.5;7.1.5 Ergebnisse;171
10.2;7.2 Sicherheit;172
10.2.1;7.2.1 Same Origin Policy;172
10.2.2;7.2.2 Vertrauliche Kommunikation;173
10.2.3;7.2.3 Authentifizierung;176
10.2.4;7.2.4 Firewalls und Proxys;197
10.2.5;7.2.5 Mögliche Gefährdungen;200
10.2.6;7.2.6 Bewertung der Sicherheitslage;209
10.3;7.3 Mit Haken und Ösen;210
10.3.1;7.3.1 Pings und Pongs;210
10.3.2;7.3.2 Das Cache-Problem im Internet Explorer 10;211
11;8 Beispielanwendungen;215
11.1;8.1 Fernbedienung von Webanwendungen mit einer Smartphone-/Tablet-Fernbedienung;216
11.2;8.2 Chat-System;225
11.3;8.3 Heatmap für Usability-Tests ;230
11.4;8.4 Überwachungskamera per Webcam;235
12;Schlusswort;245
13;A XHR-Objekt;247
14;B Chrome Developer Tools auf Android;249
15;C Umgebungsvariablen definieren;255
15.1;C.1 Mac OS/Linux mit Bash;255
15.2;C.2 Windows;256
16;D Express.js;261
16.1;D.1 Anatomie einer Express.js-Anwendung;262
16.2;D.2 Die Anwendungslogik in der Datei app.js;264
16.3;D.3 Die Jade-Template-Engine;266
16.4;D.4 Express.js mit WebSocket-Servern verbinden;268
17;Literatur;271
18;Stichwortverzeichnis;277


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.