在Django Channels中的Django Rest Framwork中获取会话集

时间:2019-05-02 09:44:44

标签: django-channels

我有一个使用Django Rest Framework的REST API,所以我想要实现的是:

  • 当用户向API发出请求时,请设置会话。本届会议 包含一个随机字符串。
  • 在DRF请求中设置会话后,在Django通道中检索会话,当用户连接后,通过Websocket将其发送回来。

但是我无法在Django频道中获得会话。

我无法在会话中设置密钥的位置附加代码,因为它是巨大的代码。我只附上一条简单的线:

request.session['random_key'] = 'somerandomkey'

这是我的django频道代码:

这是我的频道代码:

def connect(self):
    # Don't let anybody 
    if self.scope['session'].get('random_key'):  # Not working, i am not getting the random_key
        async_to_sync(self.channel_layer.group_add)(
           self.scope['session'].get('random_key'),
           self.channel_name)
        self.accept()

但是!!当我向API提出请求并设置了会话时,该会话集在通道中的会话中不可用。如果我在“常规” Django请求中设置会话,则它在Django通道会话中存在。所以问题出在Django Rest Framework上,我没有将Django Rest Framework中设置的会话放入通道范围。

0 个答案:

没有答案