WebSockets
By Bodo Kaiser
Preface
Specs
Response
Request Request
Socket
Upgrade I
Request Response
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept <a...
Upgrade II
Key
dGhlIHNhbXBsZSBub25jZQ==
GUID
258EAFA5-E914-47DA-95CA-C5AB0DC85B11
Concat
Hash
sha1
Encode
base64
Accept
s3...
Frame I
Head Payload
RSV, Opcode
1 Byte
Masked, Length I
1 Byte
Length II
2 Byte
Masking
4 Byte
Length III
8 Byte
Opcodes:...
Frame II
Length
7 Bit
Length I
< 0x7e
Length II
= 0x7e
Length III
= 0x7f
Masked
for (var i = 0; i < b.length; i++) {
b[i] ...
Streams
function Incoming() {
Transform.call(this)
}
Inherits(Incoming, Transform)
Transform.prototype._read = function(ch...
Experience
Thank You
Bodo Kaiser <i@bodokaiser.io>
Nächste SlideShare
Wird geladen in …5
×

Web sockets

249 Aufrufe

Veröffentlicht am

MNUG 10.12.15

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
249
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
2
Aktionen
Geteilt
0
Downloads
2
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Web sockets

  1. 1. WebSockets By Bodo Kaiser
  2. 2. Preface
  3. 3. Specs Response Request Request Socket
  4. 4. Upgrade I Request Response HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade Sec-WebSocket-Accept <accept> Sec-WebSocket-Protocol: <prot1> GET /<endpoint> HTTP 1.1 Host: example.org Upgrade: websocket Connection: Upgrade Origin: example.org Sec-WebSocket-Accept <key> Sec-WebSocket-Version: 13 Sec-WebSocket-Protocol: <prot1>
  5. 5. Upgrade II Key dGhlIHNhbXBsZSBub25jZQ== GUID 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 Concat Hash sha1 Encode base64 Accept s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
  6. 6. Frame I Head Payload RSV, Opcode 1 Byte Masked, Length I 1 Byte Length II 2 Byte Masking 4 Byte Length III 8 Byte Opcodes: Continuation (0x00), Text (0x01), Binary (0x02), Close (0x08), Ping (0x09), Pong (0x0a)
  7. 7. Frame II Length 7 Bit Length I < 0x7e Length II = 0x7e Length III = 0x7f Masked for (var i = 0; i < b.length; i++) { b[i] = b[i] ^ m[i % 4] }
  8. 8. Streams function Incoming() { Transform.call(this) } Inherits(Incoming, Transform) Transform.prototype._read = function(chunk, encoding, callback) { if (!this.header) { // parse head } if (this.header.masked) { // unmask payload } callback(null, chunk) }
  9. 9. Experience
  10. 10. Thank You Bodo Kaiser <i@bodokaiser.io>

×