in src/main/java/software/amazon/awssdk/crt/mqtt/MqttClientConnection.java [59:113]
public MqttClientConnection(MqttConnectionConfig config) throws MqttException {
if (config.getMqttClient() == null) {
throw new MqttException("mqttClient must not be null");
}
if (config.getClientId() == null) {
throw new MqttException("clientId must not be null");
}
if (config.getEndpoint() == null) {
throw new MqttException("endpoint must not be null");
}
if (config.getPort() <= 0 || config.getPort() > 65535) {
throw new MqttException("port must be a positive integer between 1 and 65535");
}
try {
acquireNativeHandle(mqttClientConnectionNew(config.getMqttClient().getNativeHandle(), this));
if (config.getUsername() != null) {
mqttClientConnectionSetLogin(getNativeHandle(), config.getUsername(), config.getPassword());
}
if(config.getMinReconnectTimeoutSecs() != 0L) {
mqttClientConnectionSetReconnectTimeout(getNativeHandle(), config.getMinReconnectTimeoutSecs(), config.getMaxReconnectTimeoutSecs());
}
MqttMessage message = config.getWillMessage();
if (message != null) {
mqttClientConnectionSetWill(getNativeHandle(), message.getTopic(), message.getQos().getValue(),
message.getRetain(), message.getPayload());
}
if (config.getUseWebsockets()) {
mqttClientConnectionUseWebsockets(getNativeHandle());
}
if (config.getHttpProxyOptions() != null) {
HttpProxyOptions options = config.getHttpProxyOptions();
TlsContext proxyTlsContext = options.getTlsContext();
mqttClientConnectionSetHttpProxyOptions(getNativeHandle(),
options.getConnectionType().getValue(),
options.getHost(),
options.getPort(),
proxyTlsContext != null ? proxyTlsContext.getNativeHandle() : 0,
options.getAuthorizationType().getValue(),
options.getAuthorizationUsername(),
options.getAuthorizationPassword());
}
addReferenceTo(config);
this.config = config;
} catch (CrtRuntimeException ex) {
throw new MqttException("Exception during mqttClientConnectionNew: " + ex.getMessage());
}
}