public async publish()

in lib/service_client_mqtt_adapter.ts [85:114]


    public async publish(topic: string, payload: mqtt.Payload, qos: mqtt.QoS) : Promise<mqtt.MqttRequest> {
        return new Promise<mqtt.MqttRequest>(async (resolve, reject) => {

            try {
                let result: mqtt5.PublishCompletionResult = await this.client.publish({
                    topicName: topic,
                    payload: payload,
                    qos: (qos as number) as mqtt5.QoS
                });

                if (result === undefined) {
                    if (qos == mqtt.QoS.AtMostOnce) {
                        resolve({});
                    } else {
                        reject("Publish failed due to internal error");
                    }
                    return;
                }

                let puback: mqtt5.PubackPacket = result;
                if (mqtt5.isSuccessfulPubackReasonCode(puback.reasonCode)) {
                    resolve({});
                } else {
                    reject(new CrtError("Publish failed with reason code: " + puback.reasonCode));
                }
            } catch (e) {
                reject(e);
            }
        });
    }