replace python django backend with nodejs backend
This commit is contained in:
44
backend_old/ai/websocket.py
Normal file
44
backend_old/ai/websocket.py
Normal file
@@ -0,0 +1,44 @@
|
||||
import injector
|
||||
import json
|
||||
from channels.generic.websocket import WebsocketConsumer
|
||||
|
||||
|
||||
class DashboardConnectionManager:
|
||||
def __init__(self):
|
||||
self._clients = []
|
||||
|
||||
def register(self, client: WebsocketConsumer):
|
||||
self._clients.append(client)
|
||||
pass
|
||||
|
||||
def unregister(self, client: WebsocketConsumer):
|
||||
self._clients.remove(client)
|
||||
|
||||
def broadcast(self, message: any):
|
||||
for client in self._clients:
|
||||
client.push(message)
|
||||
|
||||
|
||||
class DashboardConsumer(WebsocketConsumer):
|
||||
@injector.inject
|
||||
def __init__(self, manager: DashboardConnectionManager, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self._manager = manager
|
||||
|
||||
def connect(self):
|
||||
self.accept()
|
||||
self._manager.register(self)
|
||||
|
||||
def disconnect(self, close_code):
|
||||
self._manager.unregister(self)
|
||||
|
||||
def receive(self, text_data=None, bytes_data=None):
|
||||
# text_data_json = json.loads(text_data)
|
||||
# message = text_data_json['message']
|
||||
# self.send(text_data=json.dumps({
|
||||
# 'message': message
|
||||
# }))
|
||||
pass # do nothing currently
|
||||
|
||||
def push(self, message):
|
||||
self.send(text_data=json.dumps(message))
|
||||
Reference in New Issue
Block a user