Django channels would not start redis server using CHANNEL_LAYERS
See original GitHub issueI am trying to replicate chat with Django channels posted here: https://gearheart.io/blog/creating-a-chat-with-django-channels/
and when I run the server: $ python3 ./manage.py runserver
the redis server does not start. Here is the full message:
Performing system checks…
System check identified no issues (0 silenced). April 27, 2017 - 20:59:01 Django version 1.10.3, using settings ‘multichat.settings’ Starting Channels development server at http://127.0.0.1:8000/ Channel layer default (asgi_redis.core.RedisChannelLayer) Quit the server with CONTROL-C. 2017-04-27 20:59:01,278 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive 2017-04-27 20:59:01,279 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive 2017-04-27 20:59:01,282 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive 2017-04-27 20:59:01,282 - INFO - worker - Listening on channels http.request, websocket.connect, websocket.receive 2017-04-27 20:59:01,283 - INFO - server - HTTP/2 support not enabled (install the http2 and tls Twisted extras) 2017-04-27 20:59:01,283 - INFO - server - Using busy-loop synchronous mode on channel layer 2017-04-27 20:59:01,284 - INFO - server - Listening on endpoint tcp:port=8000:interface=127.0.0.1 2017-04-27 20:59:01,294 - ERROR - server - Error trying to receive messages: Error 61 connecting to localhost:6379. Connection refused. Exception in thread Thread-1: Traceback (most recent call last): File “/usr/local/lib/python3.6/site-packages/redis/connection.py”, line 439, in connect sock = self._connect() File “/usr/local/lib/python3.6/site-packages/redis/connection.py”, line 494, in _connect raise err File “/usr/local/lib/python3.6/site-packages/redis/connection.py”, line 482, in _connect sock.connect(socket_address) ConnectionRefusedError: [Errno 61] Connection refused
I can solve it by running redis server from a different terminal, however that is what Django Channels supposed to do in the settings:
redis_host = os.environ.get('REDIS_HOST', 'localhost')
# Channel layer definitions
# http://channels.readthedocs.org/en/latest/deploying.html#setting-up-
a-channel-backend
CHANNEL_LAYERS = {
"default": {
# This example app uses the Redis channel layer implementation asgi_redis
"BACKEND": "asgi_redis.RedisChannelLayer",
"CONFIG": {
"hosts": [(redis_host, 6379)],
},
"ROUTING": "multichat.routing.channel_routing", # We will create it in a moment
},
}
Appreciate any help and advice.
Many thanks!
Issue Analytics
- State:
- Created 6 years ago
- Comments:10 (1 by maintainers)
I used following for mac with homebrew to make it work:
brew install redis
and then:
brew services start redis
to start the Redis Server