2017-05-28 53 views

回答

1

在websocket上,连接message.content字典包含query_string。

import urlparse 
def ws_connect(message): 
    params = urlparse.parse_qs(message.content['query_string']) 
    hello = params.get('hello', (None,))[0] 

入门文档(http://channels.readthedocs.io/en/stable/getting-started.html)意味着QUERY_STRING包含作为message.content路径的一部分,但它不会出现这种情况。

下面是其中房间中的查询字符串通过聊天应用程序示例工作consumer.py:

import urlparse 
from channels import Group 
from channels.sessions import channel_session 

@channel_session 
def ws_message(message): 
    room = message.channel_session['room'] 
    Group("chat-{0}".format(room)).send({"text": "[{1}] {0}".format(message.content['text'], room)}) 

@channel_session 
def ws_connect(message): 
    message.reply_channel.send({"accept": True}) 
    params = urlparse.parse_qs(message.content['query_string']) 
    room = params.get('room',('Not Supplied',))[0] 
    message.channel_session['room'] = room 
    Group("chat-{0}".format(room)).add(message.reply_channel) 

@channel_session 
def ws_disconnect(message): 
    room = message.channel_session['room'] 
    Group("chat-{0}".format(room)).discard(message.reply_channel)