21 lines
861 B
Python
21 lines
861 B
Python
import json
|
|
import asyncio
|
|
from channels.generic.websocket import AsyncWebsocketConsumer
|
|
from .data_fetcher import fetch_lines_data # Вынесем логику получения данных в отдельный модуль
|
|
|
|
class LineDataConsumer(AsyncWebsocketConsumer):
|
|
async def connect(self):
|
|
await self.accept()
|
|
self.running = True
|
|
await self.send(text_data=json.dumps({"message": "WebSocket connected"}))
|
|
asyncio.create_task(self.send_data_periodically())
|
|
|
|
async def disconnect(self, close_code):
|
|
self.running = False
|
|
|
|
async def send_data_periodically(self):
|
|
while self.running:
|
|
data = await fetch_lines_data()
|
|
await self.send(text_data=json.dumps(data))
|
|
await asyncio.sleep(5) # Ждем 5 секунд перед следующим запросом
|