如何在使用django-channels向客户端发送内容后等待客户端的响应?
无论何时从函数send_to_client()调用Group.send(),并且在客户端接收到消息时,send_to_client()都会等待来自客户端的响应,该响应是通过websocket.receive通道接收的。
有没有办法在send_to_client()函数中返回response_msg?
现在我已经到达了here
Sample Code for consumers.py:
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通道接收。
channel_patterns = [
route("websocket.receive", ws_receive),
...
] 有没有办法这样做,让我的函数看起来像这样?
def send_to_client(...):
Group.send(...)
response_msg = #response message from client发布于 2016-12-24 08:04:13
由于您是通过websocket接收的,我不确定您是否能够分辨出接收的东西是否直接作为对您请求的响应。我宁愿在正在进行的请求中放入一个id变量或其他东西,也许还会要求客户端将该id放入响应中。这可能要求发送者和接收者都知道id的值(可能存储在db中?)
此外,被阻塞等待websocket的响应似乎也不符合逻辑。
https://stackoverflow.com/questions/41296051
复制相似问题