#django #django-channels #daphne #asgi
Вопрос:
Я относительно новичок в каналах ASGI и Django, так что это, вероятно, очень простой вопрос.
Я запустил ASGI благодаря каналам Django в одном из моих проектов Django, и он отлично работает. Затем я хочу поработать над своим старым проектом, в котором еще не используется ASGI. Я убиваю сервер отладки, работающий локально на 127.0.0.1, переключаю среды (в совершенно новом окне оболочки) и запускаю сервер отладки, работающий для старого проекта:
(server) me@laptop server % ./manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
June 12, 2021 - 11:23:40
Django version 3.2, using settings 'oldproj.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Not Found: /ws/chats/1056/
[12/Jun/2021 11:23:46] "GET /ws/chats/1056/ HTTP/1.1" 404 6103
[12/Jun/2021 11:23:46,327] - Broken pipe from ('127.0.0.1', 58901)
Not Found: /ws/chats/1056/
[12/Jun/2021 11:37:43] "GET /ws/chats/1056/ HTTP/1.1" 404 6103
[12/Jun/2021 11:37:43,293] - Broken pipe from ('127.0.0.1', 59096)
Not Found: /ws/chats/1056/
[12/Jun/2021 11:37:43] "GET /ws/chats/1056/ HTTP/1.1" 404 6103
[12/Jun/2021 11:37:43,293] - Broken pipe from ('127.0.0.1', 59096)
Эти сообщения об ошибках повторяются каждые 30 секунд или около того. Я подозреваю, что все еще идет процесс поддержки нового проекта, оснащенного ASGI, но я не знаю, что это такое. (Я искал дафну, нгинкса и других.)
Что мне нужно сделать, чтобы правильно закрыть мой новый проект Django Channels, чтобы эти ошибки не появлялись при запуске сервера в старом?
Комментарии:
1. Есть ли запущенное окно браузера, которое пытается подключиться через websockets к другому проекту?
2. @Кедар, это блестяще! Я так не думал, но я забыл, что у меня все еще работает совершенно другой браузер. Если вы запишете это как решение, я с благодарностью приму его.
Ответ №1:
Вероятно, у вас запущено окно браузера, которое пытается подключиться к websocket.
Поскольку оба проекта имеют общую конечную точку ( http://localhost:8000
или что-то подобное), ваши другие, не связанные проекты получают эти запросы и возвращают 404.