* Webserver -> web server
This was flagged by my spell check, and indeed it's hard to find
spellings online without the space. The Oxford Dictionary only knows it
with a space, so I thought it's worth correcting.
* Attempt to clarify optional keys
I wasn't sure about how to treat keys marked optional. After having
spoken to Andrew, this is my attempt at clarifying. Improvements
welcome!
* Order of header values MUST be kept
Order for HTTP header values matters, both in request and responses. So
we must make sure that we're keeping it.
Request:
> Some headers, such as Accept-Language can be sent by clients as
> several headers each with a different value rather than sending the
> header as a comma separated list.
http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getHeaders%28java.lang.String%29
Response:
Set-Cookie may be present multiple times, and only the last given value
is to be used.
I'm updating the Daphne test to verify the order in my pull request
there.
* Clarify that headers is a list of lists
The wording for 'server'/'client' and 'headers' was very similar, and I
was unsure if clients may be a list of lists (in anticipation of
protocols supporting that). I hope this small tweak makes it clearer
that only headers is a list of lists.
i think this is a typo, as cookies aren't restricted by port, so even if you offload on the same domain, daphne will still work without having to specify a ``session_key`` GET parameter since it can read the django session cookie which it defaults to.
* Move project tests to its own directory.
* Install mock test dependency for Python2 only.
* Do not install tox inside tox environment.
* Exclude tests from sdist.
* Use recent pip on Travis-CI.
* more consistent metrics
More consistent metrics, in particular for consumers such as Graphite, CloudWatch etc. you don't want aggregated numbers per second, you want number since previous call. Since we don't want to track all the clients, total since start is the next best thing, because it can be easily calculated by the metrics consumer `count_since_last = pervious_count - current_count`
* changing 'queue_depth' to 'messages_pending', also making 'messages' plurar for 'max_age' to keep it consitent
* Add Delay Protocol Server
Add a process that listens to a specific channel
and delays incoming messages by a given time.
* Add custom django command rundelay
* Add test suite
* Implements #115
* Add channels.delay app
* Add AppConfig
* Move rundelay command to channels.delay app
* Refactor DelayedMessage into model
Move login into a database backed model.
* Update Worker
* Add migration
* Add delay docs page
* Add to TOC
* Fix import sorting
* Add ASGI spec document for Delay Protocol
* Update channels.delay doc with new channel name
* remove interval docs
* Refactor Delay to use milliseconds instead of seconds
Use milliseconds as the default unit. Gives more control to developers.
* Remove interval logic from DelayedMessage
* Remove interval tests
* Tweak test logic to use milliseconds