django+channels实现websocket(一)
channels中scope包含哪些内容假设当前请求url是 ws://127.0.0.1:8000/ws/chat/as/scope包含以下内容{'type': 'websocket','path': '/ws/chat/a/','raw_path': b'/ws/chat/a/','headers': [(b'host', b'127.0.0.1:8000'),(b'connection',
·
channels中scope包含哪些内容
假设当前请求url是 ws://127.0.0.1:8000/ws/chat/as/
scope包含以下内容
{'type': 'websocket',
'path': '/ws/chat/a/',
'raw_path': b'/ws/chat/a/',
'headers': [
(b'host', b'127.0.0.1:8000'),
(b'connection', b'Upgrade'),
(b'pragma', b'no-cache'),
(b'cache-control', b'no-cache'),
(b'user-agent', b'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36'), (b'upgrade', b'websocket'),
(b'origin', b'http://127.0.0.1:8000'),
(b'sec-websocket-version', b'13'),
(b'accept-encoding', b'gzip, deflate, br'),
(b'accept-language', b'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7'),
(b'sec-websocket-key', b'v+5ERB8ZOhOFb+4AJo9dhQ=='),
(b'sec-websocket-extensions', b'permessage-deflate; client_max_window_bits')
],`
'query_string': b'',
'client': ['127.0.0.1', 54320],
'server': ['127.0.0.1', 8000],
'subprotocols': [],
'cookies': {},
'session': <django.utils.functional.LazyObject object at 0x10ce105c0>,
'user': <channels.auth.UserLazyObject object at 0x10ce10630>,
'path_remaining': '',
'url_route': {'args': (), 'kwargs': {'room_name': 'a'}}
}
路由中匹配到的数据可以用 scope['url_route']['kwargs']['room_name']访问
此外还有一些参数取值过后需要解码,转化为字符串
例如:
scope['headers'][0][0].decode('utf8')
更多推荐
所有评论(0)