В продолжении моих статей про Интернет вещей хочу поделиться своим опытом реализации одного из протоколов, который очень хорошо подходит под системы Интернета вещей. Это протокол XMPP, который был придуман для мгновенного обмена сообщениями и информацией о присутствии. Под сообщениями понимается: текст, голос, видео, файлы и другие формы представления информации, которые можно передать по сети. В качестве формата передачи данных используется XML представление.
Принцип работы протокола: каждый клиент обладает уникальным именем и обменивается информацией с другими клиентами через сервер. В качестве реализации и дальнейшего изучения протокола был организован мини домашний чат. Для этого потребовалось:
- Один сервер. Виртуальная машина (VirtualBox) с операционной системой Ubuntu 20.04, на которой был установлен свободно распространяемый XMPP-сервер «ejabberd».
- Два (можно больше) клиента. В качестве клиентов использовались 2 персональных компьютера с операционными системами MacOS и установленными приложениями XMPP-клиентами «Adium» (туц можете посмотреть клиенты под вашу ОС).
На рисунке показана схема сети, взятая для рассмотрения работы протокола. В качестве уникальных имен для клиентов были выбраны имена «test» и «admin» с общим доменом «diplom» (Да, это практическая работа для диплома. Не пропадать же добру, ыыы). Сервер и клиенты находились в подсети «192.168.88.0/24» (У вас адресация может отличаться).
Настройка сервера
Для установки XMPP-сервера «ejabberd» на нашу виртуальную машину были выполнены следующие команды в терминале системы с правами суперпользователя (root):
Настройка сервера происходила по адресу «http://192.168.88.254:5280/admin» с логином «admin@diplom» и паролем, заданным при настройке (напомню, что адрес сервера у вас может отличаться).
Единственной настройкой было добавление нового пользователя «test» для возможности взаимодействия.
Настройка клиентов
Используя учетные записи «admin@diplom» и «test@diplom» на клиентах, между ними был организован чат для передачи сообщений (рисунки ниже). В сфере Интернета вещей таким образом устройства IoT получают команды или отправляют собранную информацию на сервера, а далее на пользовательские приложения.
Вывод
Ну вот и все, мы организовали ультрабыстрый, конфиденциальный чат, который можно использовать дома. Стоит отметить, что когда один из пользователей оффлайн, а другой отправляет сообщение, то оно никуда не пропадает, а ждет на сервере пока клиент войдет в сеть.
PS: В данной работе сделано все по минимуму и без углублений в принципы работы протокола, его возможности и т.д.