コード例 #1
0
void IoTHubTransportMqtt_Unsubscribe(TRANSPORT_HANDLE handle)
{
    PMQTTTRANSPORT_HANDLE_DATA transportState = (PMQTTTRANSPORT_HANDLE_DATA)handle;
    /* Codes_SRS_IOTHUB_MQTT_TRANSPORT_07_019: [If parameter handle is NULL then IoTHubTransportMqtt_Unsubscribe shall do nothing.] */
    if (transportState != NULL && transportState->subscribed)
    {
        /* Codes_SRS_IOTHUB_MQTT_TRANSPORT_07_020: [IoTHubTransportMqtt_Unsubscribe shall call mqtt_client_unsubscribe to unsubscribe the mqtt message topic.] */
        const char* unsubscribe[] = { STRING_c_str(transportState->mqttMessageTopic) };
        (void)mqtt_client_unsubscribe(transportState->mqttClient, transportState->packetId++, unsubscribe, 1);
        transportState->subscribed = false;
    }
}
コード例 #2
0
ファイル: main.c プロジェクト: wuwx/simba
static int test_subscribe(struct harness_t *harness_p)
{
    struct mqtt_application_message_t foobar;

    /* Subscribe. */
    foobar.topic.buf_p = "foo/bar";
    foobar.topic.size = 7;
    foobar.qos = mqtt_qos_1_t;
    BTASSERT(mqtt_client_subscribe(&client, &foobar) == 0);

    thrd_sleep_ms(500);
    
    /* Unsubscribe. */
    foobar.topic.buf_p = "foo/bar";
    foobar.topic.size = 7;
    BTASSERT(mqtt_client_unsubscribe(&client, &foobar) == 0);

    return (0);
}