25 lines
1.3 KiB
Text
25 lines
1.3 KiB
Text
This module provides a complete implementation of the WebSocket
|
|
protocols that can be hooked up to any TCP library. It aims to simplify
|
|
things by decoupling the protocol details from the I/O layer, such that
|
|
users only need to implement code to stream data in and out of it
|
|
without needing to know anything about how the protocol actually works.
|
|
Think of it as a complete WebSocket system with pluggable I/O.
|
|
|
|
Due to this design, you get a lot of things for free. In particular, if
|
|
you hook this module up to some I/O object, it will do all of this for
|
|
you:
|
|
|
|
* Select the correct server-side driver to talk to the client
|
|
* Generate and send both server- and client-side handshakes
|
|
* Recognize when the handshake phase completes and the WS protocol
|
|
begins
|
|
* Negotiate subprotocol selection based on Sec-WebSocket-Protocol
|
|
* Negotiate and use extensions via the websocket-extensions module
|
|
* Buffer sent messages until the handshake process is finished
|
|
* Deal with proxies that defer delivery of the draft-76 handshake body
|
|
* Notify you when the socket is open and closed and when messages arrive
|
|
* Recombine fragmented messages
|
|
* Dispatch text, binary, ping and close frames
|
|
* Manage the socket-closing handshake process
|
|
* Automatically reply to ping frames with a matching pong
|
|
* Apply masking to messages sent by the client
|