Envie atualizações ao vivo para o cliente através dos Canais e Webs Django

Estou tentando criar uma página que mostre dados de atualização ao vivo para o cliente. O resto do site é construído com o Django, então estou tentando usar canais para isso.

Os dados que estou exibindo são salvos em um arquivo JSON e em um banco de dados MySQL para cálculos adicionais em outras partes do site. Idealmente,Gostaria de exibir os dados mais recentes recebidos (ou seja, quando o arquivo é atualizado) para o cliente conforme ele é recebido.

E mesmo que eu entenda que os canais são criados exatamente para esse fim, estou tendo problemas para fazê-lo.

Tentei enviar várias solicitações do lado do cliente com atraso e loops no consumidor, mas (ironicamente) apenas atualiza na atualização ou atualiza instantaneamente. No entanto, nenhuma dessas abordagens é acionada por uma alteração no arquivo ou no banco de dados.

Este é o código que "funciona", mas realmente não faz o que é necessário. (também, reconhecidamente, não há basicamente nada lá ...)

# consumers.py
def ws_connect(message):
  message.reply_channel.send({"accept": True})

def ws_receive(message):

  with open("data.json") as jsonfile:
    jsondata = json.load(jsonfile)

  res = json.dumps(jsondata)
  message.reply_channel.send({ "text": res, })

#routing.py
from channels.routing import route
from .consumers import ws_receive, ws_connect


channel_routing = [
  route("websocket.receive", ws_receive, path=r"^/websockets/$"),
  route("websocket.connect", ws_connect, path=r"^/websockets/$"),
]

JS usado:

<script>
var wsurl = "ws://" + "mywebsite.com" + "/websockets/";
socket = new WebSocket(wsurl);

socket.onopen = function() {
     socket.send("this is a request");
     console.log('sent');
  }

socket.onmessage = function(message) {
    console.log(message.data);
    document.getElementById("livedata").innerHTML = message.data;
}
</script>

Ficaria perfeitamente feliz com um link para os documentos que me ajudariam a obter algo assim, pois não consegui encontrar a solução por uma semana inteira.

questionAnswers(1)

yourAnswerToTheQuestion