django-channels/websockets: WebSocketBadStatusException: 握手状态 200
Posted
技术标签:
【中文标题】django-channels/websockets: WebSocketBadStatusException: 握手状态 200【英文标题】:django-channels/websockets: WebSocketBadStatusException: Handshake status 200 【发布时间】:2017-06-22 19:35:54 【问题描述】:我正在关注本教程:https://gearheart.io/blog/creating-a-chat-with-django-channels/
我在运行 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:\Python27\lib\site-packages\websocket\_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:\Python27\lib\site-packages\websocket\_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:\Python27\lib\site-packages\websocket\_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
我做错了什么?我一直按照教程到 T 直到 "ws.connect("ws://localhost:8000")" 行。这就是我卡住的地方。任何帮助将不胜感激,在此先感谢。
【问题讨论】:
【参考方案1】:我的错误是我忘记将“频道”添加到已安装的应用程序中
【讨论】:
ahahahha,我正在学习相同的教程,但同样的错误将我带到这里 :) 感谢您回答您自己的问题 :)以上是关于django-channels/websockets: WebSocketBadStatusException: 握手状态 200的主要内容,如果未能解决你的问题,请参考以下文章