Каналы Django с фронтендом Angular 14

Есть ли способ создать сокет с django и angular 14 frontend? Я пытался сделать это с помощью ngx-socket-io, но пока не получается.

Есть идеи, как решить эту проблему? Мне нужно "опросить" статус из нескольких задач celery, поэтому неэффективно вызывать бэкенд n (n=количество задач) каждые x секунд, чтобы получить последний статус.

Если вы решили использовать Django & Django-Channels для вашего бэкенда, то вы не можете использовать ngx-socket-io, потому что channels не поддерживает Socket IO. Что вы можете сделать, так это использовать WebSockets в вашем фронтенде, для чего и были созданы каналы:

Channels - это проект, который берет Django и расширяет его возможности за пределы HTTP - для работы с WebSockets, протоколами чата, протоколами IoT, и многое другое

.

Предлагаю прочитать это руководство, которое поможет вам создать слой абстракции для WebSocket: Как реализовать WebSockets в Angular Project.

Вы также можете рассмотреть возможность перехода на Flask, поскольку в нем есть пакет, поддерживающий Socket-IO.

Вернуться на верх