Определите в django-представлении, подключены ли веб-сокеты или нет - PullRequest
0 голосов
/ 28 июня 2019

Я работаю над проектом, в котором широко используются веб-сокеты. Иногда случается так, что хотя сообщение было отправлено из представления django, но клиент не получает это сообщение. При анализе журналов я видел, что иногда сообщения отправляются даже если веб-розетки в группе подключены или нет.

Как у меня есть представление django, в котором при соблюдении определенных условий в группу отправляется сообщение. Вот так: -

def send_message(request):
    #some existing lines of code
    if(some_condition):
       Group("receivers").send({"text":json.dumps({"key1":"value1","key2":"value2"})})

Я хочу знать перед отправкой сообщения группе "получателей", подключены ли веб-розетки этой группы или нет. Если они не подключены, тогда код должен подождать, пока веб-сокеты не подключатся, а затем сообщение будет отправлено.

Так что в целом все должно быть так:

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, каналы == 1.1.8 и redis в качестве посредника сообщений.

...