backend/barcode/consumers.py

21 lines
861 B
Python
Raw Permalink Normal View History

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 секунд перед следующим запросом