Процесс сокетов Django
Я столкнулся с небольшой проблемой, которую мне нужно решить. У меня есть приложение на Django, и мне нужен websocket, но мне не нравятся каналы Django, поэтому я создал сокет-сервер во Flask и пытаюсь подключить к нему Django, создав промежуточное ПО, которое при вызове запускает процесс, который отправляет сообщения через процесс, что у него есть в очереди
Но либо общая переменная не работает, либо сам процесс не работает должным образом. Пожалуйста, если у вас есть совет или решение, напишите также, как завершить процесс с сокетом, когда django завершает работу
Вот мой код:
socket.py
---
import socketio
import json
from project.settings import SOCKET_CONFIG, MANAGER
from multiprocessing import Process
sio = socketio.Client()
class Socket:
queue = MANAGER.list()
def __init__(self, get_response):
self.get_response = get_response
thread = Process(target=Socket.process_loop, args=())
thread.start()
def __call__(self, request):
return self.get_response(request)
@staticmethod
def process_loop():
sio.connect('http://{}:{}'.format(SOCKET_CONFIG["host"],SOCKET_CONFIG["port"]))
while True:
try:
import time
time.sleep(1)
data = Socket.queue.pop(0)
sio.emit('message', data)
except BaseException as e: print(e)
settings.py
---
import os, subprocess
from multiprocessing import Process, Manager
MANAGER = Manager()
SOCKET_CONFIG={
"host":"localhost",
"port":8001
}
MIDDLEWARE = [
...
'_middlewares.socket.Socket'
]
...