ທົດສອບການສື່ສານກັບ MQTT broker ແບບ LTS/SSL Part #TheEnd Android
ຈາກບົດຄວາມກ່ອນໜ້ານີ້ ທົດສອບການສື່ສານກັບ MQTT broker ແບບ LTS/SSL Part #2 ESP8266 ທີ່ໄດ້ເວົ້າເຖິງການເຊື່ອມຕໍ່ MQTT broker ແບບ TLS/SSL ຂອງ ESP8266 ຫຼື ທາງດ້ານ Smart device. ມາໃນບົດຄວາມນີ້ກໍ່ເປັນຕອນຈົບແລ້ວ
ເຊິ່ງຈະເວົ້າເຖິງການໃຊ້ android ເຊື່ມຕໍ່ເຂົ້າໄປທີ່ MQTT broker ຜ່ານ TLS/SSL Connection.
MQTT Client for android
ສຳລັບ Android ເອງກໍ່ມີ Library MQTT Client ໃຫ້ໃຊ້ເຊິ່ງນາມນັ້ນແມ່ນ Eclipse Paho
ວ່າແລ້ວກໍ່ຕິດຕັ້ງເຂົ້າໃນ project android studio ຂອງເຮົາເລີຍ.
build.gradle (Project)
maven {
url "https://repo.eclipse.org/content/repositories/paho-releases/"
}
build.gradle (Module app)
compile('org.eclipse.paho:org.eclipse.paho.android.service:1.0.2'){
exclude module: 'support-v4'
}
ສຳລັບ document ຂອງ Paho
ໄປຫາອ່ານເອງທີ່ website ທາງການເລີຍ. ຜູ້ຂຽນຈະມາເວົ້າເຖີງວິທີການເຊື່ມຕໍ່ດ້ວຍ TLS/SSl ເທິງ Android ເທົ່ານັ້ນ.
Generating BouncyCastle format certificates
ໃນການເຊື່ມຕໍ່ດ້ວຍ Paho MQTT client ແບບ TLS/SSL ນັ້ນຈຳເປັນຕ້ອງໄດ້ສ້າງ certificate ຂຶ້ນມາເອງເພາະ library ບໍ່ support ການເຊື່ມຕໍ່ TLS ມາໃນໂຕດັ່ງນັ້ນເຮົາຈຶ່ງຕ້ອງນຳເອົາ server certificate ທີ່ເຮົາໄດ້ generate ຂຶ້ນມາໃຊ້ກ່ອນໜ້ານີ້ມາສ້າງເປັນ Trust-certificate ໂດຍ BouncyCastle ກ່ອນອື່ນກໍ່ໃຫ້ໄປໂຫຼດ bcprov-ext-jdk15on-1.46.jar ມາເສຍກ່ອນແລ້ວ run command line ລຸ່ມນີ້
$ keytool -import -alias mqtt-broker -file cacert.pem -keypass mykeystorepassword -keystore raw_key_file -storetype BKS -storepass mykeystorepassword -providerClass org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath bcprov-ext-jdk15on-1.46.jar
ເຊິ່ງເຮົາຈະໄດ້ raw_key_file
ທີ່ເຮົາຈະນຳໄປໃຊ້ໃນ android code ຂອງເຮົາໂດຍໃຫ້ນຳ file ດັງກ່າວໄປວາງໄວ້ທີ່ raw directory
ຈາກນັ້ນກໍ່ສ້າງ class ຂຶ້ນມາໃສ່ຊື່ວ່າ SslUtility
ແລະ code ດັ່ງນີ້
ເປັນ class ທີ່ໃຊ້ສ້າງ TLS/SSL socket ຂື້ນມາໂດຍໃຊ້ certificate ທີ່ເຮົາ generate ຂຶ້ນມານັ້ນ.
Eclipse Paho MQTT client
code ສ່ວນທີ່ໃຊ້ເຊື່ມຕໍ່ MQTT broker ຂອງ Eclipse Paho
ພຽງເທົ່ານີ້ເຮົາກໍ່ສາມາດເຊື່ມຕໍ່ກັບ MQTT broker ດ້ວຍ TLS/SSL ໄດ້ແລ້ວ
Referent
ຂອບໃຈທີ່ອົດທົນອ່ານຈົນຈົບ ແລະ ແປລາວເປັນລາວ