* Update channel_session decorator to rehydrate http_session
Update the http_session decorator to write the http session key
to the channel_session when available. This allows the channel_session
decorator to rehydrate the http_session after the initial websocket
connection.
closes#318
* Add persist=True option to http_session
* Add explicit option to store the session key in the channel session
* Update docs
* Add test case
* Add channel_and_http_session decorator
This decorator enables both sessions and maintains
the http_session for the lifetime of the websocket connection.
As per [their blog post of the 27th April](https://blog.readthedocs.com/securing-subdomains/) ‘Securing subdomains’:
> Starting today, Read the Docs will start hosting projects from subdomains on the domain readthedocs.io, instead of on readthedocs.org. This change addresses some security concerns around site cookies while hosting user generated data on the same domain as our dashboard.
Test Plan: Manually visited all the links I’ve modified.
* Json encoding only for not string text at HttpClient
* Decode received content if possible
* Check that content received
* Using json kwarg at receive method to decode message text content
* Wrap decorator function at channel_session_user_from_http
* Cleanup
* Arbitrary indent. sorry
* Added groups as Binding attr for easy groups_names definition
* Binding: inbound - updating fields that only in fields attribute
* Added tests for inbound part of binding #343
* Fix for flake8 checker
* Revert "Added groups as Binding attr for easy groups_names definition"
This reverts commit 009b4adbee534d4ccbea191ce2523a0edb09d407.
* Using group_names at inbound tests
* Starting reporting write up.
* Added in charts
* Added in images to report
* Cleaned up comments
* Added in clarifications about the testing
* Added in clarification
* Added date
* Added in subdir with same content
* Added in supervisor configs
* updated the readme
* Update and rename README.rst to README.md
* Update README.md
* Added in version info.
* Changes to root info
* Update README.md
* Update README.md
* Cleaned up presentation
You may also want to make use of:
```
.. code:: python
```
instead of just `::`. Sphinx will then do the colour highlighting for you and may have helped catch this.
Ooh, and also, it wasn't immediately obvious to me here that `include` is imported from `from channels.routing`. You may want to add that to the code sample.
* Added in simple locust file
* Correcting the file name
* Updated to latest version of daphne
* moving settings up
* Moved over channels settings
* Removed channels settings
* Removed settings file
* Moved around files
* Made a file for normal wsgi
* Changed regular wsgi to point to channels settings
* Create __init__.py
* Added in the appropriate import
* Named it right
* Create urls_no_channels.py
* Delete urls_no_channels.py
* Doing this so I don't have to have multiple urls
* Update urls.py
* Update urls.py
* Added in fabric cmd for installing nodejs loadtest
* Added in git dependency
* Added in a symlink for loadtest
* Made run_loadtest command
* Added in argument for time
* Changed to format on string
* Updated arguments
* Fixed typo for argument
* Made some comments and moved around some tasks
* Edits to readme
* Add a lot more documentation
* Adjusted formatting
* Added a comment
* Made formatting cahnges
* Slight language change
* Changed name for testing
* Changed name for testing
* Update asgi.py
* Added in alternate ChannelLayer
* Rename chanells_inmemory.py to chanels_inmemory.py
* Rename chanels_inmemory.py to channels_inmemory.py
* Create asgi_inmemory
* Rename asgi_inmemory to asgi_inmemory.py
* Added in routing
* Switching to instantiated class
* Update channels_inmemory.py
* Update channels_inmemory.py
* Altered the fabric testing tasks
* Update and rename asgi_inmemory.py to asgi_ipc.py
* Update and rename channels_inmemory.py to channels_ipc.py
* Updated to include asgi_ipc
* Updated environment setup task
* Spelling
* Updated channel layer
* Update asgi_ipc.py
* Rename asgi_ipc.py to asgi_for_ipc.py
* Update asgi_for_ipc.py
* Trying something
* Trying something else
* Changed it back
* changed back
* Use a mixin for common test-case code. This way we can have both
a regular channels test-case, and a transaction test-case, too.
* Adding a reference to django-cq.
* Adding the ability to launch a number of workers in threads.
This is to try and help reduce memory consumption.
* Adding a signal for process level worker startups.
* Cleaning up the threaded worker code.
* Use Python 2.7 friendly code.
* Making the runworker command show a little more information
about how many threads are running.
* Moving the worker ready signal into a method in order to support
polymorphic behavior.
* Ugh, I'm an idiot. Was launching the wrong run.
* Adding a call to the workers' `ready` in `runserver`.
* Fixed a bug whereby too many threads were being
used when threaded workers were used.
* Use a mixin for common test-case code. This way we can have both
a regular channels test-case, and a transaction test-case, too.
* Adding a reference to django-cq.
* Adding the ability to launch a number of workers in threads.
This is to try and help reduce memory consumption.
* Adding a signal for process level worker startups.
* Cleaning up the threaded worker code.
* Use Python 2.7 friendly code.
* Making the runworker command show a little more information
about how many threads are running.
* Moving the worker ready signal into a method in order to support
polymorphic behavior.
* Ugh, I'm an idiot. Was launching the wrong run.
* Adding a call to the workers' `ready` in `runserver`.