Django доступ в реальном времени на мобильных устройствах - PullRequest
0 голосов
/ 04 декабря 2018

Я новичок в веб-интерфейсе.В настоящее время я использую инфраструктуру DjangoREST, она работает над моими ожиданиями, за исключением того, что она не помогает в общении в реальном времени.Я не хочу использовать FireBase.Другими словами, я хочу создать свой собственный бэкэнд, как FireBase, не все функции, а, по крайней мере, доступ в реальном времени на мобильных устройствах.Недавно я нашел Django Channels, как я уже упоминал, у меня нет опыта разработки на стороне сервера, поэтому я не знаю много об этом.

Я просто хочу спросить, возможен ли доступ к Django в реальном времени на мобильных устройствах черезКаналы Джанго?Могу ли я сделать что-то похожее на DjangoREST GET, PUT, POST и DELETE в каналах Django?

1 Ответ

0 голосов
/ 05 декабря 2018

Если вы хотите сделать это с django, то у вас не так много вариантов.И, на мой взгляд, django-channels - лучшее решение для этого.django-channels предназначен для работы с веб-scoket, чатом и соединениями в реальном времени:

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

Ваш дизайн API не будет таким иным.Конечно, вы должны использовать другие инструменты, и у вас не будет некоторых опций, которые вам дает django-rest-framework.Но это хорошая библиотека, которая справится с вашей ситуацией.

А по поводу вашего вопроса , ДА, вы можете обрабатывать его везде, где вам нужно.почти все браузеры поддерживают веб-сокеты, и почти все языки программирования для мобильных устройств поддерживают веб-сокеты по своему дизайну.(подробнее о методах связи в текущих приложениях читайте по этой ссылке: web-api-design-method

Конечно, вы потеряете некоторые функции в django rest, такие как serialziers, и у вас будут другиемаршрутизаторы и ... Кроме того, вам просто нужно отправлять данные через сообщения с помощью веб-сокета, и нет необходимости в методах http. Потому что это другой протокол (вы можете заметить это по ws:// перед вызовами API)

Но помните, у вас будут некоторые проблемы в django-channels, такие как:

  • Вам нужен веб-сервер asgi для обработки ваших запросов к django-серверу, например, daphne, который отличается, и вы должны научиться конфигурироватьit.

  • У вас нет сериализатора и тому подобного, и вы должны проверить свои входные данные (кстати, есть библиотека channels-api для django, которая предоставляет такие функции, как django-rest, Я не тестировал его, но вы можете проверить его и посмотреть, как он работает.)

  • Производительность вашего сервера будет зависеть от оперативной памяти для веб-сокетакоммуникации.потому что каждый открывающийся сокет будет потреблять память, а увеличение числа пользователей вызовет проблемы с производительностью.Также обратите внимание, что django-каналы не могут обрабатывать диапазон, например запросы 1M, и вам следует рассмотреть другие протоколы, такие как mqtt, которые легче по дизайну, если ваш проект находится в таком масштабе.

...