Сервер Django слушает только сервер сокетов и игнорирует маршруты
Вот мой файл WSGI.py в django, я импортирую папку под названием "webSocket", которая содержит файл views.py, где написан код сервера для сокета
from django.core.wsgi import get_wsgi_application
from webSocket.views import server
import socket
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'b2b_backend.settings')
application = get_wsgi_application()
# make the app run with socketio
application = socket.WSGIApp(application, server)
вот мой файл urls.py в корневой папке django, маршруты работают нормально до добавления сокет-сервера в проект
from django.urls import include, path
urlpatterns = [
path('users/', include('database_models.b2b_user.urls')),
]
вот мой файл сервера сокетов в папке webSocket файл views.py импортировать сокет import threading
SERVER = "localhost"
PORT = 8000
HEADER = 64
ADDR = (SERVER, PORT)
FORMAT = 'utf-8'
DISCONNECT_MESSAGE = "!DISCONNECT"
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(ADDR)
def handle_client(conn, addr):
print(f"[NEW CONNECTION] {addr} connected.")
connected = True
while connected:
msg_length = conn.recv(HEADER).decode(FORMAT)
if msg_length:
msg_length = int(msg_length)
msg = conn.recv(msg_length).decode(FORMAT)
print(f"[{addr}] {msg}")
if(msg == DISCONNECT_MESSAGE):
connected = False
conn.send("test".encode(FORMAT))
conn.close()
def start():
server.listen()
while True:
conn, adrr = server.accept()
thread = threading.Thread(target=handle_client, args=(conn, adrr))
thread.start()
print(f"[ACTIVE CONNECTIONS]", {threading.active_count() - 1})
print(f"[STARTING] server is starting on {SERVER}:{PORT}")
start()
в чем проблема: при запуске сервера django, он начинает слушать только сообщения сокета, и когда я пытаюсь получить доступ к маршруту, он посылает запрос на сервер сокета, а не на маршруты django, что приводит к ошибке
Что я пытаюсь сделать: Мне нужно, чтобы сервер django работал и постоянно слушал сокетные запросы от клиентов, и в то же время нормально обращался к маршрутам, чтобы сайт мог продолжать работать правильно