如何在 Android 上通过 websocket 使用 HiveMQ
How to use HiveMQ over websocket on Android
我对 MQTT 比较陌生,正在尝试通过我的 Android 应用程序中的网络套接字进行连接。
HiveMQ and Paho 似乎是最常用的库,所以我现在就试试运气吧。
不幸的是,我在第一个图书馆就到了,需要有关如何继续的提示,因为不幸的是,文档对此没有任何说明。
对于 HiveMQ,我并不完全清楚如何通过 websocket 连接,以及如何自定义我的 credentials/headers,因为我需要添加一些自定义 header,如“x-amz-customauthorizer-name”等等。
这是我不添加用户凭据的尝试:
val client = Mqtt3Client.builder()
.identifier(UUID.randomUUID().toString())
.serverAddress(InetSocketAddress(result.data.webSocketServer, 443))
.sslWithDefaultConfig()
.addConnectedListener { context: MqttClientConnectedContext? -> Log.e(javaClass.simpleName, "mqtt Here Connected Yay") }
.addDisconnectedListener { context: MqttClientDisconnectedContext -> Log.e(javaClass.simpleName, "mqtt Disconnected: " + context.cause.message!!) }
.buildAsync()
client.connect()
您只需要将 webSocketConfig 添加到构建器中,如下所示:
Mqtt3Client client = Mqtt3Client.builder()
.identifier(UUID.randomUUID().toString())
.serverAddress(new InetSocketAddress("localhost", 443))
.sslWithDefaultConfig()
this line-> .webSocketConfig(MqttWebSocketConfig.builder().subprotocol("mqtt").serverPath("/mqtt").build())
.buildAsync();
但我认为您还不能添加自定义 headers,请参阅 https://github.com/hivemq/hivemq-mqtt-client/issues/457。
你好,
迈克尔
我对 MQTT 比较陌生,正在尝试通过我的 Android 应用程序中的网络套接字进行连接。
HiveMQ and Paho 似乎是最常用的库,所以我现在就试试运气吧。
不幸的是,我在第一个图书馆就到了,需要有关如何继续的提示,因为不幸的是,文档对此没有任何说明。 对于 HiveMQ,我并不完全清楚如何通过 websocket 连接,以及如何自定义我的 credentials/headers,因为我需要添加一些自定义 header,如“x-amz-customauthorizer-name”等等。
这是我不添加用户凭据的尝试:
val client = Mqtt3Client.builder()
.identifier(UUID.randomUUID().toString())
.serverAddress(InetSocketAddress(result.data.webSocketServer, 443))
.sslWithDefaultConfig()
.addConnectedListener { context: MqttClientConnectedContext? -> Log.e(javaClass.simpleName, "mqtt Here Connected Yay") }
.addDisconnectedListener { context: MqttClientDisconnectedContext -> Log.e(javaClass.simpleName, "mqtt Disconnected: " + context.cause.message!!) }
.buildAsync()
client.connect()
您只需要将 webSocketConfig 添加到构建器中,如下所示:
Mqtt3Client client = Mqtt3Client.builder()
.identifier(UUID.randomUUID().toString())
.serverAddress(new InetSocketAddress("localhost", 443))
.sslWithDefaultConfig()
this line-> .webSocketConfig(MqttWebSocketConfig.builder().subprotocol("mqtt").serverPath("/mqtt").build())
.buildAsync();
但我认为您还不能添加自定义 headers,请参阅 https://github.com/hivemq/hivemq-mqtt-client/issues/457。
你好,
迈克尔