跳至主要內容

Jasmine

guodongAndroid大约 2 分钟

Jasmine

License: Apache 2.0open in new window Maven Centralopen in new window

Jasmine 是一个基于 Netty 并使用 Kotlin 开发的适用于 Android 的轻量级 MQTT Broker。

特性

  • MQTT 3.1/3.1.1协议支持
  • 完整的 QoS 0,1,2 消息支持
  • 遗嘱消息、保留消息支持
  • 订阅主题通配符支持
  • WebSocket双协议支持
  • 默认基于内存的消息持久化
  • 不支持匿名访问,但默认无需认证
  • 支持自定义认证逻辑
  • 支持SSL/TLS,单向/双向认证

集成

implementation("com.sunxiaodou.android:jasmine:${latest-version}")

使用

基本使用

val jasmine = Jasmine.Builder().start() // 默认端口1883

启动成功后,使用任意MQTT 客户端访问 tcp://{IP}:1883 连接 Broker。

进阶使用

val jasmine = Jasmine.Builder()
	.port(1883) // 指定端口,默认1883
	.enableSSL(true) // 启用SSL/TLS
	.sslPort(1884) // 指定SSL/TLS端口,默认1884
	.serverCertFile(File("")) // 指定服务端证书,启用SSL/TLS时必须指定
	.privateKeyFile(File("")) // 指定服务端私钥,PKCS#8格式,启用SSL/TLS时必须指定
	.enableTwoWayAuth(true) // 启用双向认证
	.caCertFile(File("")) // 指定客户端证书的CA证书,启用双向认证时必须指定
	.enableWebsocket(true) // 启用WebSocket
	.websocketPort(8083) // 指定WebSocket端口,默认8083
	.websocketSSLPort(8084) // 指定WebSocket SSL/TLS端口,默认8084
	.websocketPath("/mqtt") // 指定WebSocket路径,默认/mqtt
	.keepAliveInSeconds(5) // 指定客户端保持时长,单位秒,默认5s客户端与Broker没有交互即断开连接
	.retryInterval(3_000) // 指定QoS1/QoS2消息重发间隔时长,单位毫秒,默认3_000毫秒
	.maxRetries(5) // 指定QoS1/QoS2消息最大重发次数,默认5次
	.maxContentLength(65536) // 指定单个消息的最大内容长度,默认65536字节
	.maxClientIdLength(255) // 指定客户端ClientId的最大长度,默认255
	.jasmineCallback(this) // 注入Jasmine回调
	.clientListener(this) // 注入客户端监听器
	.addAuthenticator(this) // 添加自定义认证器
	.start()

jasmine


详见 Github:Jasmineopen in new window