backend/barcode/consumers.py
2025-03-06 16:31:45 +10:00

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