* Fixed import to resolve RemovedInDjango20Warning
That resolves: "RemovedInDjango20Warning: Importing from django.core.urlresolvers is deprecated in favor of django.urls."
* Fixed syntax error
Fixed indent
* Updated import order
* pass save's kwargs to serialize
So it can access update_fields
* added short explanation
* added missing kwargs
* use update_fields to filter fields to serialize
* save kwargs on self
* get signal_kwargs from self
* whitespace
* just save signal_kwargs on self+removed left over kwargs
* 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
* Pass FORCE_SCRIPT_NAME to Daphne server when set
FORCE_SCRIPT_NAME seems not to be honored any more with build-in runserver after activating channels app.
The normal behavior of Django is the FORCE_SCRIPT_NAME is used as prefix when set while generating URLs so its possible to
create a path prefix and determine different Django installations based on the path rather than hostname without having to prefix all paths in urls.py.
* Only strip script_name from path if it starts with it
* make tests happy again after setting kwarg root_path
* added http_timeout as a comand line option for runserver
* possible improvement for input param management
* explicitly set the default http_timeout in add_argument
* 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.
* 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
* 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`.
* fixed usage of group_names in *_change_receiver
group_names was missing second arg (action)
* fixed group_names to include action
* made group_names a classmethod
* Implement the data binding behaviour from Django DDP.
Correct dispatch of create/update/delete according to how group_names change
when compared between pre and post save/delete.
* Fix tests for databinding improvements.