Implementation of web sockets for Python, upgrades a regular socket to a web socket

Taddeus Kroes 59e0a6badd Removed finished item from TODO list %!s(int64=12) %!d(string=hai) anos
test 8f15e28308 Implemented client handshake, and did some corresponding debugging %!s(int64=12) %!d(string=hai) anos
.gitignore 6d2cf25d8d Added SSL support (wss://...), updated some docs %!s(int64=12) %!d(string=hai) anos
LICENSE d758ca45b0 Added license %!s(int64=13) %!d(string=hai) anos
Makefile 8f15e28308 Implemented client handshake, and did some corresponding debugging %!s(int64=12) %!d(string=hai) anos
README.md 1d1413925a Prettified README %!s(int64=13) %!d(string=hai) anos
TODO 59e0a6badd Removed finished item from TODO list %!s(int64=12) %!d(string=hai) anos
__init__.py 8f15e28308 Implemented client handshake, and did some corresponding debugging %!s(int64=12) %!d(string=hai) anos
connection.py bfbe3934e5 Revised server-side connection closing and added a timeout to waiting for CLOSE frames %!s(int64=12) %!d(string=hai) anos
errors.py 6d2cf25d8d Added SSL support (wss://...), updated some docs %!s(int64=12) %!d(string=hai) anos
frame.py 80538863f6 Fixed issue where server crashes when client closes connection %!s(int64=12) %!d(string=hai) anos
handshake.py 64a1553c12 Fixed issue where connection fails in webkit-based browsers %!s(int64=12) %!d(string=hai) anos
message.py a942e6bb1a Added initialization to prevent error %!s(int64=12) %!d(string=hai) anos
python_digest.py ee818ad017 Updated external copyright header with download link %!s(int64=12) %!d(string=hai) anos
server.py e123fe7f85 onclose() handlers should now be invoked properly and TCP sockets should be closed when a server stops serving %!s(int64=12) %!d(string=hai) anos
websocket.py ba21de4a2c Refactored handshaking process, moved it to a separate file, implemented HTTP authentication %!s(int64=12) %!d(string=hai) anos

README.md

twspy is a standalone implementation of web sockets for Python, defined by RFC 6455.

  • The websocket class upgrades a regular socket to a web socket. A websocket instance is a single end point of a connection. A websocket instance sends and receives frames (Frame instances) as opposed to bytes (which are sent/received in a regular socket).

  • A Connection instance represents a connection between two end points, based on a websocket instance. A connection handles control frames properly, and sends/receives messages (Message instances, which are higher-level than frames). Messages are automatically converted to frames, and received frames are converted to messages. Fragmented messages (messages consisting of multiple frames) are also supported.