Передача данных по асинхронному каналу
Имеется такой код:
<script>
var socket = new WebSocket('ws://localhost:8000/ws/some_url/');
socket.onmessage = function(event) {
var data = JSON.parse(event.data);
console.log(data);
document.querySelector('#app').innerText = data.message;
}
</script>
.........
# 1
import json
from random import randint
from time import sleep
#from channels.generic.websocket import WebsocketConsumer
from channels.generic.websocket import WebsocketConsumer
class WSConsumer(WebsocketConsumer):
def connect(self):
self.accept()
for i in range(5):
self.send(json.dumps({'message': randint(1, 100)}))
sleep(1)
#2
import json
from random import randint
from time import sleep
#from channels.generic.websocket import WebsocketConsumer
from channels.generic.websocket import AsyncWebsocketConsumer
class WSConsumer(AsyncWebsocketConsumer):
async def connect(self):
self.accept()
for i in range(10):
await self.send(text_data=json.dumps({
'message': 12
}))
sleep(1)
Первый вариант выводит каждую секунду на страницу случайные цифры, но при этом интерфейс страницы зависает. Что бы избавиться от зависания воспользовался асинхронным каналом, но цифры не выводятся, а в консоль выводится ошибка:
home:411 WebSocket connection to 'ws://localhost:8000/ws/some_url/' failed: Как исправить это?