我尝试在Flutter中使用mqtt wit wss,但是它没有成功连接。在MQTTBox.exe中,它成功连接了wss://postman.cloudmqtt.com:32839。
Flutter版本为1.7.8 + hotfix3,分支稳定。 我使用的是mqtt_client.dart,版本是5.5.3。 我使用cloudmqtt提供了wss。
这是我的连接功能设置:
void _connect() async {
client = mqtt.MqttClient(broker, '');
client.useWebSocket = true;
client.port = 32839;
client.secure = true;
client.logging(on: true);
client.keepAlivePeriod = 20;
client.onDisconnected = _onDisconnected;
final mqtt.MqttConnectMessage connMess = mqtt.MqttConnectMessage()
.startClean()
.keepAliveFor(20)
.authenticateAs(cloudMqttAccount, cloudMqttSecret)
.withWillQos(mqtt.MqttQos.atLeastOnce);
print('MQTT client connecting....');
client.connectionMessage = connMess;
try {
await client.connect();
} catch (e) {
print(e);
_disconnect();
}
if (client.connectionState == mqtt.MqttConnectionState.connected) {
print('MQTT client connected');
setState(() {
connectionState = client.connectionState;
});
} else {
print(client);
print('ERROR: MQTT client connection failed - '
'disconnecting, state is ${client.connectionState}');
_disconnect();
}
}