устройство будет мобильным и будет перемещаться через каждые несколько дней.Поэтому я не могу гарантировать статический IP-адрес для устройства.
Ваше устройство может быть клиентом веб-сайта.
Ваш веб-сайт имеет два интерфейса.
HTML-интерфейс для людей.
Не-HTML интерфейс к устройству.В качестве клиента веб-сайта устройству потребуется HTTP-библиотека на стороне клиента для отправки запроса на веб-сайт.Этот запрос будет включать в себя IP-адрес устройства, а также все обычные вредоносные сообщения, скрытые в HTTP-запросе.(Существует несколько стандартных заголовков, которые отправляются в запросе)
После того, как устройство отправило свой первоначальный запрос, ваш веб-сайт может сохранить текущее состояние устройства и связаться с ним.через другой протокол, если вы хотите это сделать.(Я предполагаю, что «у меня все функциональные части написаны на стороне сервера и устройства» означает, что у вас есть какой-то другой протокол для управления устройством, и этот протокол не основан на HTTP.)
Этов конечном итоге может быть проще всего сделать так, чтобы устройство опрашивало веб-сайт на предмет наличия команд, обновлений или чего-либо еще.Таким образом, устройство представляет собой чистый веб-клиент, использующий только HTTP, а ваш веб-сайт - чистый веб-сервер, использующий только HTTP.Тогда вам не нужен ваш более специализированный второй протокол.Использование только HTTP означает, что вы можете использовать SSL для обеспечения безопасной связи.
Если ваше устройство использует HTTP для получения команд и обновлений, вам необходимо разработать пригодное для использования представление для данных, которые можно легко кодировать в HTTP.запросы и ответы.Выбор включает в себя XML, JSON и YAML.Вы всегда можете придумать свой собственный формат данных;однако, вы, вероятно, будете счастливее отлаживать стандартизированный формат, такой как JSON.
Создание этих двух интерфейсов в Django довольно тривиально.У вас просто будет несколько URL-адресов, предназначенных для людей, а некоторые - для вашего устройства.У вас будут функции просмотра для людей, которые возвращают страницы HTML, и функции просмотра для вашего устройства, которые возвращают сообщения JSON или XML.