0.14.2 (2016-07-07) ------------------- * Marked as incompatible with twisted 16.3 and above until we work out why it stops incoming websocket messages working 0.14.1 (2016-07-06) ------------------- * Consumption of websocket.receive is also now required. 0.14.0 (2016-07-06) ------------------- * Consumption of websocket.connect is now required (channels 0.16 enforces this); getting backpressure on it now results in the socket being force closed. 0.13.1 (2016-06-28) ------------------- * Bad WebSocket handshakes now return 400 and an error messages rather than 500 with no content. 0.13.0 (2016-06-22) ------------------- * Query strings are now sent as bytestrings and the application is responsible for decoding. Ensure you're running Channels 0.15 or higher. 0.12.2 (2016-06-21) ------------------- * Plus signs in query string are now handled by Daphne, not Django-by-mistake. Ensure you're running Channels 0.14.3 or higher. * New --root-path and DAPHNE_ROOT_PATH options for setting root path. 0.12.1 (2016-05-18) ------------------- * Fixed bug where a non-ASCII byte in URL paths would crash the HTTP parser without a response; now returns 400, and hardening in place to catch most other errors and return a 500. * WebSocket header format now matches HTTP header format and the ASGI spec. No update needed to channels library, but user code may need updating. 0.12.0 (2016-05-07) ------------------- * Backpressure on http.request now causes incoming requests to drop with 503. Websockets will drop connection/disconnection messages/received frames if backpressure is encountered; options are coming soon to instead drop the connection if this happens. 0.11.4 (2016-05-04) ------------------- * Don't try to send TCP host info in message for unix sockets 0.11.3 (2016-04-27) ------------------- * Don't decode + as a space in URLs 0.11.2 (2016-04-27) ------------------- * Correctly encode all path params for WebSockets 0.11.1 (2016-04-26) ------------------- * Fix bugs with WebSocket path parsing under Python 2 0.11.0 (2016-04-26) ------------------- * HTTP paths and query strings are now pre-decoded before going to ASGI 0.10.3 (2016-04-05) ------------------- * Error on badly formatted websocket reply messages 0.10.2 (2016-04-03) ------------------- * Access logging in NCSAish format now printed to stdout, configurable to another file using --access-log=filename 0.10.1 (2016-03-29) ------------------- * WebSockets now close after they've been open for longer than the channel layer group expiry (86400 seconds by default for most layers). * Binding to UNIX sockets is now possible (use the -u argument) * WebSockets now send keepalive pings if they've had no data for a certain amount of time (20 seconds by default, set with --ping-interval) 0.10.0 (2016-03-21) ------------------- * Multiple cookies are now set correctly * Follows new ASGI single-response-channel spec for ! * Follows new ASGI header encoding spec for HTTP 0.9.3 (2016-03-08) ------------------ * WebSocket query strings are correctly encoded 0.9.2 (2016-03-02) ------------------ * HTTP requests now time out after a configurable amount of time and return 503 (default is 2 minutes) 0.9.1 (2016-03-01) ------------------ * Main thread actually idles rather than sitting at 100% * WebSocket packets have an "order" attribute attached * WebSocket upgrade header detection is now case insensitive 0.9 (2016-02-21) ---------------- * Signal handlers can now be disabled if you want to run inside a thread (e.g. inside Django autoreloader) * Logging hooks that can be used to allow calling code to show requests and other events. * Headers are now transmitted for websocket.connect * http.disconnect messages are now sent * Request handling speed significantly improved