5 Star 56 Fork 5

xuankaicat / kmnkt

预览版本
2023-03-19 18:03
8346865 xuankaicat 1669777005 xuankaicat

从此版本起发布至mavenCentral。

socket

更改

在Java中构造socket对象时可以返回对象以直接打开。

新增

OnOpenCallback增加error回调,用于处理异常情况。

最后提交信息为: 移动group至kmnkt
预览版本
2023-01-05 19:34
8346865 xuankaicat 1669777005 xuankaicat

socket

更改

升级依赖版本,目前Kotlin版本为1.7.20

新增

ISocket增加openSync()函数,用于同步阻塞式开启连接。

mqtt-enhance

新增

MQTT通信增强模块,支持MQTT控制器式订阅。

预览版本
2022-06-07 23:28
8346865 xuankaicat 1669777005 xuankaicat

socket

更改

  1. 升级依赖版本,目前Kotlin版本为1.6.21

  2. MQTT订阅机制更新,现在在多次重复订阅同一个topic时不会冲突。

  3. 现在Desktop目标的默认JVM版本为8以兼容JAVA 1.8。

新增

  1. IMqttSocket增加path属性,便于MQTT通过ws连接时构建url。
  2. IMqttSocket增加callbackOnMain属性,便于在无ui线程的平台上阻塞运行或另开线程。
  3. MQTT增加同步发送函数与同步收发函数:
/**
  * 同步发送数据
  * @param message 数据内容
*/
fun sendSync(message: String)

/**
  * 同步发送数据
  * @param topic 主题
  * @param message 数据内容
*/
fun sendSync(topic: String, message: String)

/**
 * 同步发送指定发送主题数据并根据接收主题接收消息
 * @param outTopic 发送主题
 * @param inTopic 接收主题
 * @param message 数据内容
 * @param onReceive 回调函数
 */
fun sendAndReceiveSync(outTopic: String, inTopic: String, message: String, onReceive: OnReceiveFunc)

/**
 * 同步发送指定发送主题数据并根据接收主题接收消息
 * @param outTopic 发送主题
 * @param inTopic 接收主题
 * @param message 数据内容
 * @param timeout 超时时间,单位毫秒,设为负数则无时间规定
 * @return 接收到的内容,如果超时则会返回null
 */
fun sendAndReceiveSync(outTopic: String, inTopic: String, message: String, timeout: Long = -1L): String?
  1. IMqttSocket增加threadLock,用于选择是否开启同步锁。

aliyun-iot

更改

修复错误的硬编码。

最后提交信息为: 更新 README.md
预览版本
2022-03-06 01:28
8346865 xuankaicat 1669777005 xuankaicat

communicate

更改

  1. 更改模块名为socket

  2. 更改包名。
    com.gitee.xuankaicat.communicate改为com.gitee.xuankaicat.kmnkt.socket

  3. 更改接口名。
    Communicate改为ISocket
    MQTTCommunicate改为IMqttSocket

新增

增加获取通信对象的接口socket,便于扩展未封装的功能。

communicate-aliyun-iot

更改

  1. 更改模块名为aliyun-iot

  2. 更改包名。
    com.gitee.xuankaicat.communicate.aliyuniot改为com.gitee.xuankaicat.kmnkt.aliyuniot

预览版本
2022-03-05 14:43
8346865 xuankaicat 1669777005 xuankaicat

communicate

更改

  1. 移除弃用的serverPort属性。
  2. 增加设置LWT的前提条件,默认InMessageTopic为空时不再设置LWT。

新增

  1. 新的连接对象声明方式(以创建UDP连接对象为例)。

原版:

private val communicate = Communicate.UDP.apply {
    address = "10.0.2.2"//设置ip地址
    port = 9000//设置端口号
    inCharset = Charset.forName("gb2312")//设置输入编码
    outCharset = Charset.forName("gb2312")//设置输出编码
}

新版:

import com.gitee.xuankaicat.communicate.dsl.udp

private val communicate = udp {
    address = "10.0.2.2"//设置ip地址
    port = 9000//设置端口号
    inCharset = Charset.forName("gb2312")//设置输入编码
    outCharset = Charset.forName("gb2312")//设置输出编码
}
  1. MQTT增加sendAndReceive函数以发送指定发送主题数据并根据接收主题接收消息。
  2. 支持JVM目标。

communicate-aliyun-iot

新增

  1. 支持快速构建阿里云mqtt对象。

    import com.gitee.xuankaicat.communicate.aliyuniot.mqtt
    
    val mqtt = mqtt(AliyunMqtt(
            productKey = "",
            deviceName = "",
            deviceSecret = "",
            regionId = "cn-shanghai"
        ))
    
  2. 支持部分协议:

    • 添加设备拓扑关系 (topoAdd)
    • 设备属性上报 (propertyPost)
    • 设备属性设置 (propertySet)
    • 获取期望属性值 (desiredGet)
    • 设备上报标签数据 (deviceInfoUpdate)
    • 发送回应信息 (alinkResponse)

    目前alink协议的实现还不是很完善,欢迎提交issue或pull request。

示例

​ 参考examples/AliyunIotDemo

communicate-mqtt

已合并入communicate模块。

2021-12-29 14:59
8346865 xuankaicat 1669777005 xuankaicat

communicate

更改

1.更新默认IP地址为10.0.2.2
2.弃用serverPort,使用更符合直觉的port设置端口。
3.UDP现在在无法发送的情况会抛出异常。

新增

1.新增失去连接时的回调,在open时通过loss设置。失去连接时的默认为尝试重新连接。
2.TCP与UDP通信过程会有更详细的日志打印。

修复

kotlin使用DSL构建时说明文档丢失。

communicate-mqtt

修复

cleanSession为true时断开连接会将接收状态设置为false。

最后提交信息为: 替换遗漏的serverPort
2021-12-28 18:17
8346865 xuankaicat 1669777005 xuankaicat

communicate-mqtt

通信对象增加cleanSessionkeepAliveInterval字段用于配置。

cleanSession: 断开连接后是否清楚缓存,如果清除缓存则在重连后需要手动恢复订阅。默认为true。
keepAliveInterval: 检测连接是否中断的间隔。默认为20秒。

2021-12-28 15:52
8346865 xuankaicat 1669777005 xuankaicat

communicate-mqtt

修复MQTT通信中断重连时失败不会继续尝试连接

2021-12-28 13:24
8346865 xuankaicat 1669777005 xuankaicat

communicate

TCP、MQTT:修复failure分支的返回与预期行为不符。

communicate-mqtt

1.修复MQTT通信因两层判断难以进入failure分支。 #I4ODGA:mqtt open failure retrun=true,自动重连5次失败后会回调success,实际没有成功
2.MQTTCommunicate增加timeOut字段用于设置超时时间,超过这个时间未连接将进行失败回调,默认为10秒。

2021-12-21 00:18
8346865 xuankaicat 1669777005 xuankaicat

communicate

startReceive参数由(String)->Boolean改为(String, Any)->Boolean。第二个参数在不同的通信方式中会返回不同的值:

  • TCP:传入数据的ByteArray
  • UDP:数据来源的ip地址(String)
  • MQTT:数据来源的Topic(String)

kotlin仍然可以使用单参调用的方式。由于使用了kotlin的语言特性,java必须使用双参版本。

communicate-mqtt

1.修复MQTT监听时导致的阻塞问题。
2.MQTT收到消息时现在会打印一条带有Topic于Message的日志。

最后提交信息为: 提供startReceive的单参版本
2021-12-16 00:14
8346865 xuankaicat 1669777005 xuankaicat

communicate-mqtt

1.增加addInMessageTopicremoveInMessageTopic用于订阅多个主题。
2.send(topic: String, message: String)可以发送指定主题的信息。
3.移除废弃api。

最后提交信息为: 强化mqtt功能,移除废弃api
2021-12-13 23:29
8346865 xuankaicat 1669777005 xuankaicat

communicate

取消open函数返回值,改为使用OnOpenCallback构造成功与失败的回调函数

kotlin

可以使用DSL构建open的回调函数

最后提交信息为: 修改回调函数命名
2021-12-11 19:26
8346865 xuankaicat 1669777005 xuankaicat

修正mqtt包依赖项

最后提交信息为: 增加 publish-helper.gradle
2021-12-11 18:06
8346865 xuankaicat 1669777005 xuankaicat

修正mqtt包依赖项

最后提交信息为: 更新group
2021-12-10 15:54
8346865 xuankaicat 1669777005 xuankaicat

communicate

java

1.允许使用lambda直接构造对象
2.普通构造对象可以去掉get,比如Communicate.getUDP()可以写成Communicate.UDP()

communicate-mqtt

1.使用inMessageTopic替代publishTopic
2.使用outMessageTopic替代responseTopic

kotlin

在构造mqtt时现在可以从Communicate直接得到对象实例,而不是通过MQTTCommunicate

最后提交信息为: 更新 README.md
2021-12-10 03:42
8346865 xuankaicat 1669777005 xuankaicat

支持MQTT协议

最后提交信息为: mqtt依赖改为1.+
2021-12-09 00:36
8346865 xuankaicat 1669777005 xuankaicat

Android实现socket通信统一接口的类库,已实现UDP与TCPClient

最后提交信息为: update README.md
Kotlin
1
https://gitee.com/xuankaicat/kmnkt.git
git@gitee.com:xuankaicat/kmnkt.git
xuankaicat
kmnkt
kmnkt

搜索帮助