我正在研究一个广泛使用websockets的项目,有时候发生的是虽然从django视图发送了消息,但客户端没有收到消息。在分析日志时,我发现有时消息正在发送即使网上论坛中的websocket是否已连接。
就像我有一个django视图一样,如果满足某些条件,就会向该组发送一条消息。如下:-
def send_message(request):
#some existing lines of code
if(some_condition):
Group("receivers").send({"text":json.dumps({"key1":"value1","key2":"value2"})})
我想在将消息发送给“接收者”组之前知道该组的websocket是否已连接。如果未连接,则代码应等待Websockets连接好,然后发送消息。
所以总体来说应该像这样:
def send_message(request):
#some existing lines of code
if(some_condition):
if(websockets_are_not_connected):
wait_for_websockets_to_get_connected
elif(websockets_are_connected):
Group("receivers").send({"text":json.dumps({"key1":"value1","key2":"value2"})})
PS:我正在使用django = 1.11,channels == 1.1.8和redis作为消息代理。