django-channels/websockets: WebSocketBadStatusException: Handshake status 200

I am following this tutorial:

And I get this error with the following code while running runserver

redis_host = os.environ.get('REDIS_HOST', 'localhost')

# Channel layer definitions
    "default": {
        # This example app uses the Redis channel layer implementation asgi_redis
        "BACKEND": "asgi_redis.RedisChannelLayer",
        "CONFIG": {
            "hosts": [(redis_host, 6379)],
       "ROUTING": "gameapollius.routing.channel_routing", # We will create it in a moment

from channels import route,include

def message_handler(message):

channel_routing = [
    route('websocket.receive', message_handler)


In [1]: import websocket

In [2]: ws = websocket.WebSocket()

In [3]: ws.connect("ws://localhost:8000")
WebSocketBadStatusException               Traceback (most recent call last)
<ipython-input-3-43b98f503495> in <module>()
----> 1 ws.connect("ws://localhost:8000")

c:Python27libsite-packageswebsocket_core.pyc in connect(self, url, **options)
213         try:
--> 214             self.handshake_response = handshake(self.sock, *addrs, **options)
215             self.connected = True
216         except:

c:Python27libsite-packageswebsocket_handshake.pyc in handshake(sock, hostname, port, resource, **options)
 67     dump("request header", header_str)
---> 69     status, resp = _get_resp_headers(sock)
 70     success, subproto = _validate(resp, key, options.get("subprotocols"))
 71     if not success:

c:Python27libsite-packageswebsocket_handshake.pyc in _get_resp_headers(sock, success_status)
127     status, resp_headers = read_headers(sock)
128     if status != success_status:
--> 129         raise WebSocketBadStatusException("Handshake status %d", status)
130     return status, resp_headers

WebSocketBadStatusException: Handshake status 200

What am I doing wrong? I have followed the tutorial to the T up until the “ws.connect(“ws://localhost:8000″)” line. This is where I am stuck. Any help would be appreciated, thanks in advance.

Miner Asked on June 22, 2017 in General Stack.
Add Comment


  • 1 Answer(s)

    Run the redis server in the back if you are not running   see this tutorial as to how you can set it up also if you have not put “channels” in INSTALLED_APPS in check that too .  But pretty much I think you are not running the redis server

    Default Answered on June 23, 2017.
    Add Comment

    Write your answer

    By posting your answer, you agree to the privacy policy and terms of service.