WEBSOCKETS
                                Rodr igo Constantin Ctenas Zaccar a
                                                          6367629




Wednesday, November 23, 2011
STANDARDIZATION


   • Internet              Engineering Task Force

        • Protocol

   • World Wide Web                 Consortium

        • JavaScript API




Wednesday, November 23, 2011
PROTOCOL
Wednesday, November 23, 2011
HANDSHAKE


   • HTTP

        • Connection: upgrade

        • Upgrade: websocket

        • Sec-WebSocket-*       headers



Wednesday, November 23, 2011
MESSAGE EXCHANGE
                            0                   1                   2                   3
                            0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                          +-+-+-+-+-------+-+-------------+-------------------------------+
                          |F|R|R|R| opcode|M| Payload len |    Extended payload length    |
                          |I|S|S|S| (4) |A|       (7)     |             (16/63)           |
                          |N|V|V|V|       |S|             |   (if payload len==126/127)   |
                          | |1|2|3|       |K|             |                               |
                          +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
                          |     Extended payload length continued, if payload len == 127 |
                          + - - - - - - - - - - - - - - - +-------------------------------+
                          |                               |Masking-key, if MASK set to 1 |
                          +-------------------------------+-------------------------------+
                          | Masking-key (continued)       |          Payload Data         |
                          +-------------------------------- - - - - - - - - - - - - - - - +
                          :                     Payload Data continued ...                :
                          + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
                          |                     Payload Data continued ...                |
                          +---------------------------------------------------------------+



Wednesday, November 23, 2011
JAVASCRIPT API
Wednesday, November 23, 2011
METHODS

   • send

   • Callback                  style

        • onopen

        • onclose

        • onerror

        • onmessage

Wednesday, November 23, 2011
COMPARISON
Wednesday, November 23, 2011
HTTP POOLING

   • protocol                  overhead: 600 bytes
                           users            Traffic (bytes)   Traffic (Mbps)
                           1000                600000             4.5
                          10000                6000000            45
                        100000                60000000           450




Wednesday, November 23, 2011
WEBSOCKET

   • protocol                  overhead: 2 bytes
                           users             Traffic (bytes)   Traffic (Mbps)
                           1000                     2000         0.019
                          10000                    20000          0.19
                        100000                     200000          1.9




Wednesday, November 23, 2011
DEMO
Wednesday, November 23, 2011
CONCLUSION


   • WebSocket                 is the choice for web real time communication

   • Very           efficient network traffic

   • Full        duplex (connection always ready for client and server)




Wednesday, November 23, 2011
WEBSOCKETS
                                Rodr igo Constantin Ctenas Zaccar a
                                                          6367629




Wednesday, November 23, 2011

WebSockets

  • 1.
    WEBSOCKETS Rodr igo Constantin Ctenas Zaccar a 6367629 Wednesday, November 23, 2011
  • 2.
    STANDARDIZATION • Internet Engineering Task Force • Protocol • World Wide Web Consortium • JavaScript API Wednesday, November 23, 2011
  • 3.
  • 4.
    HANDSHAKE • HTTP • Connection: upgrade • Upgrade: websocket • Sec-WebSocket-* headers Wednesday, November 23, 2011
  • 5.
    MESSAGE EXCHANGE 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-------+-+-------------+-------------------------------+ |F|R|R|R| opcode|M| Payload len | Extended payload length | |I|S|S|S| (4) |A| (7) | (16/63) | |N|V|V|V| |S| | (if payload len==126/127) | | |1|2|3| |K| | | +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - + | Extended payload length continued, if payload len == 127 | + - - - - - - - - - - - - - - - +-------------------------------+ | |Masking-key, if MASK set to 1 | +-------------------------------+-------------------------------+ | Masking-key (continued) | Payload Data | +-------------------------------- - - - - - - - - - - - - - - - + : Payload Data continued ... : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | Payload Data continued ... | +---------------------------------------------------------------+ Wednesday, November 23, 2011
  • 6.
  • 7.
    METHODS • send • Callback style • onopen • onclose • onerror • onmessage Wednesday, November 23, 2011
  • 8.
  • 9.
    HTTP POOLING • protocol overhead: 600 bytes users Traffic (bytes) Traffic (Mbps) 1000 600000 4.5 10000 6000000 45 100000 60000000 450 Wednesday, November 23, 2011
  • 10.
    WEBSOCKET • protocol overhead: 2 bytes users Traffic (bytes) Traffic (Mbps) 1000 2000 0.019 10000 20000 0.19 100000 200000 1.9 Wednesday, November 23, 2011
  • 11.
  • 12.
    CONCLUSION • WebSocket is the choice for web real time communication • Very efficient network traffic • Full duplex (connection always ready for client and server) Wednesday, November 23, 2011
  • 13.
    WEBSOCKETS Rodr igo Constantin Ctenas Zaccar a 6367629 Wednesday, November 23, 2011