Кто-нибудь знает о брокере MQTT, который работает на Android-смартфоне? Я пытался Google и ничего не нашел, и в магазине приложений, похоже, только одно приложение с 10 загрузками, поэтому я не уверен, насколько хорошо он работает.MKTT broker для Android
ответ
Взгляните на этот вопрос:
Using Android-Tablet as an MQTT-Server
TLDR;
Возможно, вы ищете чистого Java-брокера, такого как HiveMQ.
Вот брокерская библиотека MQTT, адаптированная для Android: https://github.com/interaktionsbyran/moquette Вам нужно будет создать собственное приложение для Android, хотя это просто библиотека.
вы можете помочь в создании примера приложения, использующего мокет для Android? – Gaurav
Добавьте эту зависимость в Gradle
dependencies{
compile 'io.moquette:moquette-netty-parser:0.8.1'
compile 'io.moquette:moquette-broker:0.8.1'
compile 'io.moquette:moquette-parser-commons:0.8.1'
}
И использовать
io.moquette.server.Server server = new io.moquette.server.Server();
server.startServer();
для запуска брокера сервера. URI по умолчанию: tcp://localhost:1883
Для меня server.startServer();
дал мне исключение, поскольку он не может создать файл BrokerConstants.DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME
. Итак, я поменял пункт назначения BrokerConstants.DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME
, используя этот код ниже кода, и это сработало для меня.
try {
MemoryConfig memoryConfig = new MemoryConfig(new Properties());
memoryConfig.setProperty(BrokerConstants.PERSISTENT_STORE_PROPERTY_NAME, Environment.getExternalStorageDirectory().getAbsolutePath()+ File.separator + BrokerConstants.DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME);
server.startServer(memoryConfig);
// server.startServer();//is not working due to DEFAULT_MOQUETTE_STORE_MAP_DB_FILENAME;
Log.d(TAG,"Server Started");
}
catch (IOException e) { e.printStackTrace(); }
catch (Exception e){ e.printStackTrace(); }
и использовать Pāho библиотеки для андроид
compile 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
compile 'org.eclipse.paho:org.eclipse.paho.android.service:1.1.1'
Чтобы создать клиент и подключиться к tcp://localhost:1883
и подписаться на тему и начать публикацию и получение сообщений.
Я пробовал это, но это продолжает разрушать мое приложение, не показывая никаких ошибок. Не могли бы вы мне помочь? –
Теперь это не сбой приложения, но вместо этого не может подключиться к серверу. Как я запустил сервер в tcp: // localhost: 1883? –
использовать 'io.moquette.server.Server server = new io.moquette.server.Server(); server.startServer(); 'чтобы запустить сервис, запустите этот код в службе или в потоке. – Tej
Я разработал приложение специально для этого, пожалуйста, скачать здесь -
Он имеет встроенный брокер и клиент too..all бесплатно подключить устройств к андроида телефона через точку доступа или Wi-Fi.
https://play.google.com/store/apps/details?id=server.com.mqtt
Почему вы хотели бы запустить MQTT брокера на Android? –
Я работаю над проектом, который может потребовать, чтобы несколько клиентов на телефоне разговаривали друг с другом с помощью MQTT. Тот же тип клиентов разговаривает друг с другом с одного устройства на другое с помощью внешнего брокера MQTT, поэтому с точки зрения повторного использования и требования, которое они говорят через MQTT, я (думаю, мне) действительно нужен брокер MQTT. – Branex