Как стать JBoss A-MQ и Android Rock Star в мире Интернета вещей!
Я хотел собрать простой пример того, как использовать Red Hat JBoss A-MQ в Интернете вещей (IoT) с помощью телеметрического транспорта очереди сообщений (MQTT) в Android.
В первой части статьи будут освещены концепции и технологии, использованные в демонстрации. Вторая часть поможет вам начать работу с примером за пару минут, как рок-звезда. В примере показано, как легко публиковать и подписываться на тему в JBoss A-MQ из Android с помощью MQTT Client.
Часть 1 — Концепции
Что такое MQTT?
MQTT — это протокол соединения между компьютерами (M2M) / «Интернет вещей». Он был спроектирован как чрезвычайно легкий транспорт для публикации и подписки. Это полезно для соединений с удаленными местоположениями, где требуется небольшая площадь кода и / или пропускная способность сети выше. [1]
MQTT теперь является открытым стандартом OASIS. Первое совещание Технического комитета OASIS MQTT состоялось 26 марта 2013 года в Бостоне в качестве совещания F2F (Face 2 Face). [2] Очень хороший обзор MQTT от Дэйва Локка в ссылках. [3]
Что такое Red Hat JBoss A-MQ?
Небольшая, высокопроизводительная платформа обмена сообщениями с открытым исходным кодом на основе Apache ActiveMQ. [8] В рамках программы Red Hat Developer программное обеспечение JBoss A-MQ Enterprise доступно для разработчиков, БЕСПЛАТНО!
Какие вспомогательные проекты включены в демонстрацию?
Демонстрация включает в себя код из клиентской библиотеки Red Hat JBoss Fuse MQTT, который начал Хирам Кирино. Библиотека поддерживает API-интерфейсы блокировки, будущего и обратного вызова / продолжения. Источник находится в ссылках. [4] Я включил библиотеку в проект. Я также использовал код от Джейсона Шермана для примера приложения для Android. [5] [6] Кроме того, я использовал шаблон JBoss Rock Star Эрика Шабелла для быстрой сборки демонстрации. [7]
Требуются только следующие обновления файла activemq.xml:
1. Транспортный соединитель для mqtt. Стандартный порт 1883.
<transportConnectors> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/> <transportConnector name="mqtt" uri="mqtt+nio://0.0.0.0:1883"/> </transportConnectors>
2. Для обеспечения безопасности мы просто используем SimpleAuthenticationPlugin.
<plugins> <simpleAuthenticationPlugin> <users> <authenticationUser username="system" password="manager" groups="users,admins"/> <authenticationUser username="user" password="password" groups="users"/> <authenticationUser username="guest" password="password" groups="guests"/> </users> </simpleAuthenticationPlugin> </plugins>
Основной код в приложении Android находится в файле MQTTActivity.java в пакете org.example.mqtt. Пользовательский интерфейс приложения для Android находится в main.xml и отображается в графическом макете.
Часть 2 — Демо
Шаги для сборки и запуска демонстрации
1. Загрузите код с github по адресу
https://github.com/kpeeples/a-mq-android-mqtt
2. Загрузите Red Hat JBoss A-MQ с
сайта https: //www.jboss. org / products / amq.html и поместите в каталог установки.
3. Загрузите комплект Android с
http://developer.android.com/sdk/index.html и распакуйте его.
4. Загрузите и запустите JBoss Developer Studio 7 или Fuse IDE.
5. Добавьте
подключаемые модули разработчика Android.
6. Создайте виртуальное устройство Android (AVD) через JBDS в диспетчере виртуальных устройств Android в меню «Окно». Если диспетчер виртуальных устройств Android не отображается в меню «Окно», нажмите «Окно»> «Настройка перспективы»> вкладка «Доступность групп команд». Установите флажок «Android SDK и AVD Manager» и нажмите кнопку «ОК».
7. Импортируйте проект Android в JBDS
8. Запустите файл init.sh для настройки A-MQ.
9. Запустите A-MQ на переднем плане, выполнив target / jboss-a-mq-6.0.0.redhat-024 / bin / amq.
10. Щелкните правой кнопкой мыши AndroidManifest.xml и запустите как Android.
11. Подключитесь к брокеру и убедитесь, что вы используете IP вместо localhost и используете имя пользователя / пароль, введенные из activemq.xml.
12. Введите тему назначения и тестовое сообщение, затем нажмите «Отправить».
13. Сообщение будет отправлено в тему. прочитайте из темы и затем поместите в полученное поле.
Ссылки:
[1]
http://mqtt.org/
[2]
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt
[3]
https: //www.oasis-open. org / committees / download.php / 49205 / MQTT-OASIS-Webinar.pdf
[4]
https://github.com/fusesource/mqtt-client
[5]
http://java.dzone.com/articles/android- mqtt-activemq
[6]
https://github.com/jsherman1/android-mqtt-demo.git