Django: Как настроить команду runserver_socketio для manage.py
Я пишу чат в реальном времени, похожий на этот пакет с Django. Он запускает отдельный сервер WebSocket с командой
python manage.py runserver_socketio
Но я не могу понять, как сделать runserver_socketio
Команда загрузить мой обработчик. Единственный связанный код, который я могу найти в пакете, находится здесь, в django-socketio/django_socketio/management/commands/runserver_socketio.py
:
server = SocketIOServer(bind, handler, resource="socket.io")
....
handler = WSGIHandler()
Но с какой стати это handler
связано с моим кодом?
1 ответ
Я понял. manage.py runserver_socketio
Команда запускает почти такой же сервер, как manage.py runserver
делает. Разница лишь в том, что этот новый сервер может обрабатывать протокол websocket.
Чтобы увидеть это, предположим, runserver
работает на 127.0.0.1:8000
а также runserver_socketio
на 127.0.0.1:9000
, Просто посетить 127.0.0.1:9000
и вы получите ту же веб-страницу с 127.0.0.1:8000
,
Секрет кроется в django-socketio/django_socketio/example_project/urls.py
, который ссылается django-socketio/django_socketio/urls.py
, В эту секунду urls.py
мы можем видеть, что он загружается events.py
в нашем проекте.