django-channels/websockets: WebSocketBadStatusException: Handshake status 200

I am following this tutorial: https://gearheart.io/blog/creating-a-chat-with-django-channels/

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

#settings.py

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": "gameapollius.routing.channel_routing", # We will create it in a moment
    },
}

#routing.py

from channels import route,include

def message_handler(message):
    print(message['text'])

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

#traceback

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)
212
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)
 68
---> 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
131

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


  • LATEST ANSWERS

  • 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 https://www.youtube.com/watch?v=ncFhlv-gBXQ&t=230s also if you have not put “channels” in INSTALLED_APPS in settings.py 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.