首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在django-channels等待websocket.receive用户

在django-channels等待websocket.receive用户
EN

Stack Overflow用户
提问于 2016-12-23 14:09:29
回答 1查看 905关注 0票数 0

如何在使用django-channels向客户端发送内容后等待客户端的响应?

无论何时从函数send_to_client()调用Group.send(),并且在客户端接收到消息时,send_to_client()都会等待来自客户端的响应,该响应是通过websocket.receive通道接收的。

有没有办法在send_to_client()函数中返回response_msg

现在我已经到达了here

Sample Code for consumers.py:

代码语言:javascript
复制
def ws_receive(message):
    response_msg = message.content['text']
    return response_msg

def send_to_client(param1, param2, param3):
    Group.send({
      "text" : json.dumps({
        "First" : param1,
        "Second" : param2,
       })
    })

因此,一旦消息到达客户端,客户端将向服务器发回一个响应,该响应将由ws_receive(message)函数通过urls.py文件中定义的websocket.receive通道接收。

代码语言:javascript
复制
channel_patterns = [
    route("websocket.receive", ws_receive),
    ...
] 

有没有办法这样做,让我的函数看起来像这样?

代码语言:javascript
复制
def send_to_client(...):
    Group.send(...)
    response_msg = #response message from client
EN

回答 1

Stack Overflow用户

发布于 2016-12-24 08:04:13

由于您是通过websocket接收的,我不确定您是否能够分辨出接收的东西是否直接作为对您请求的响应。我宁愿在正在进行的请求中放入一个id变量或其他东西,也许还会要求客户端将该id放入响应中。这可能要求发送者和接收者都知道id的值(可能存储在db中?)

此外,被阻塞等待websocket的响应似乎也不符合逻辑。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41296051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档