ricky1118 / kmnkt

基于Kotlin Multiplatform的跨平台socket通信统一接口,在对Kotlin有较好的支持的同时兼容在JAVA中调用。目前支持Android目标与JVM目标,支持UDP/TCP/MQTT协议。

Home Page:https://gitee.com/xuankaicat/kmnkt

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

kmnkt

Maven Central

kmnkt(原communicate)是基于Kotlin Multiplatform的跨平台socket通信统一接口的实现。 可以使用同一套接口快速实现UDP/TCPClient/MQTT连接。

支持平台

  • Android
  • Jvm

优点

  • 简单配置就可以快速使用
  • 对于实现多种通信方式的需求快速转换
  • 使用kotlin实现,对kotlin语法支持好
private val socket = udp {
    address = "10.0.2.2"
    port = 9000
    open()
}

private val socket = tcp {
    address = "10.0.2.2"
    port = 9000
    open()
}

private val mqtt = mqtt {
    address = "10.0.2.2"
    port = 1883
    username = "xuankai"
    password = "xuankai"
    open()
}
  • MQTT控制器式订阅
@Subscribe("service/extra/{extra}")
@TopicIgnore("reply")
fun mqttPhaseExtraPath(topic: String, @Payload myUser: MyUser, @AnyParam extra: List<String>) {
    mqttService.sendData("${topic}/reply", """{
        "id": ${myUser.id},
        "name": "${myUser.name}",
        "extra": "$extra",
        "fullTopic": "$topic",
        "time": "${LocalTime.now()}"
    }""".trimIndent())
}

如何使用

  1. 在项目中引入依赖,参阅Gradle
  2. 查看示例项目或对应模块的文档。

Gradle

Groovy DSL

添加依赖:

dependencies {
    // udp/tcp/mqtt支持
    implementation 'com.gitee.xuankaicat.kmnkt:socket-android:2.0.0-alpha06'// 适用于Android
    implementation 'com.gitee.xuankaicat.kmnkt:socket-desktop:2.0.0-alpha06'// 适用于Desktop
    // mqtt控制器式订阅支持
    implementation 'com.gitee.xuankaicat.kmnkt:mqtt-enhance-android:2.0.0-alpha06'// 适用于Android
    implementation 'com.gitee.xuankaicat.kmnkt:mqtt-enhance-desktop:2.0.0-alpha06'// 适用于Desktop
    // 阿里云alink支持
    implementation 'com.gitee.xuankaicat.kmnkt:aliyun-iot-android:2.0.0-alpha06'// 适用于Android
    implementation 'com.gitee.xuankaicat.kmnkt:aliyun-iot-desktop:2.0.0-alpha06'// 适用于Desktop
}

Kotlin DSL

添加依赖:

dependencies {
    // udp/tcp/mqtt支持
    implementation("com.gitee.xuankaicat.kmnkt:socket-android:2.0.0-alpha06")// 适用于Android
    implementation("com.gitee.xuankaicat.kmnkt:socket-desktop:2.0.0-alpha06")// 适用于Desktop
    // mqtt控制器式订阅支持
    implementation("com.gitee.xuankaicat.kmnkt:mqtt-enhance-android:2.0.0-alpha06")// 适用于Android
    implementation("com.gitee.xuankaicat.kmnkt:mqtt-enhance-desktop:2.0.0-alpha06")// 适用于Desktop
    // 阿里云alink支持
    implementation("com.gitee.xuankaicat.kmnkt:aliyun-iot-android:2.0.0-alpha06")// 适用于Android
    implementation("com.gitee.xuankaicat.kmnkt:aliyun-iot-desktop:2.0.0-alpha06")// 适用于Desktop
}

示例项目

  • app - 安卓中的udp/tcp/mqtt示例
  • app-java - 在安卓中使用java语言进行开发的udp/tcp/mqtt示例
  • AliyunIotDemo - 基于JetBrains Compose for Desktop的阿里云Iot桌面应用示例
  • springbootDemo - 在springboot中的mqtt示例,包含socket模块与mqtt-enhance模块示例

模块

  • socket - 基础模块,包含UDP/TCP/MQTT
  • mqtt-enhance - MQTT通信增强模块,支持MQTT控制器式订阅
  • aliyun-iot - 阿里云alink协议实现模块

反馈

有任何使用上的问题或者想要的功能都可以通过提交issue提出,本人看到后会尽快处理回复。

About

基于Kotlin Multiplatform的跨平台socket通信统一接口,在对Kotlin有较好的支持的同时兼容在JAVA中调用。目前支持Android目标与JVM目标,支持UDP/TCP/MQTT协议。

https://gitee.com/xuankaicat/kmnkt

License:MIT License


Languages

Language:Kotlin 100.0%