mqtt: FIX: update sample code to include MQTT UNSUBSCRIBE message

This patch demonstrates how to use the MQTT UNSUBSCRIBE message.

The publisher application is updated to fix a typo.

Jira: ZEP-623

Change-Id: I2c302c9f9320687fc39f36726394417db89f06d8
Signed-off-by: Flavio Santes <flavio.santes@intel.com>
This commit is contained in:
Flavio Santes 2016-08-03 19:46:51 -05:00
commit fb080a3211
2 changed files with 30 additions and 8 deletions

View file

@ -87,7 +87,7 @@ void fiber(void)
printf("\n--------------------------------\n");
rc = mqtt_pingreq(&app_ctx);
printf("Pingreg, rc: %s\n", RC_STR(rc));
printf("Pingreq, rc: %s\n", RC_STR(rc));
fiber_sleep(SLEEP_TIME);
/* Message published with QoS0 */

View file

@ -54,21 +54,23 @@ void fiber(void)
struct netz_ctx_t netz_ctx = NETZ_CTX_INIT;
/* The MQTT Client Context - only MQTT-related stuff here */
struct mqtt_client_ctx_t client_ctx = MQTT_CLIENT_CTX_INIT("zephyr");
struct mqtt_client_ctx_t client_ctx = MQTT_CLIENT_CTX_INIT("zephyr2");
/* The MQTT Application Context: networking and mqtt stuff */
struct mqtt_app_ctx_t app_ctx = MQTT_APP_INIT(&client_ctx, &netz_ctx,
&tx_buf, &rx_buf);
int i = 0;
int rc;
/* First we configure network related stuff */
netz_host_ipv4(&netz_ctx, 192, 168, 1, 110);
netz_host_ipv4(&netz_ctx, 192, 168, 1, 111);
netz_netmask_ipv4(&netz_ctx, 255, 255, 255, 0);
/* MQTT server address and port */
netz_remote_ipv4(&netz_ctx, 192, 168, 1, 10, 1883);
/* MQTT context runtime initialization */
mqtt_init(&app_ctx);
/* Network buffers are now handled by the MQTT context */
mqtt_buffers(&app_ctx, &tx_buf, &rx_buf);
/* Now we let the MQTT context to handle the network context */
@ -76,8 +78,8 @@ void fiber(void)
/* Once everything is configured, we connect to the MQTT server */
rc = mqtt_connect(&app_ctx);
if (rc != 0) {
printf("[%s:%d] Unable to connect: %d\n",
__func__, __LINE__, rc);
printf("[%s:%d] Unable to connect: %s\n",
__func__, __LINE__, RC_STR(rc));
return;
}
fiber_sleep(SLEEP_TIME);
@ -87,8 +89,8 @@ void fiber(void)
*/
rc = mqtt_subscribe(&app_ctx, "sensors", MQTT_QoS2);
if (rc < 0) {
printf("[%s:%d] Unable to subscribe: %d\n",
__func__, __LINE__, rc);
printf("[%s:%d] Unable to subscribe: %s\n",
__func__, __LINE__, RC_STR(rc));
return;
}
@ -97,11 +99,31 @@ void fiber(void)
do {
printf("\n--------------------------------\n");
rc = mqtt_pingreq(&app_ctx);
printf("Pingreq, rc: %s\n", RC_STR(rc));
fiber_sleep(SLEEP_TIME);
mqtt_read(&app_ctx);
fiber_sleep(SLEEP_TIME);
} while (1);
} while (++i < 50);
rc = mqtt_unsubscribe(&app_ctx, "sensors");
if (rc < 0) {
printf("[%s:%d] Unable to unsubscribe: %s\n",
__func__, __LINE__, RC_STR(rc));
return;
}
rc = mqtt_disconnect(&app_ctx);
if (rc < 0) {
printf("[%s:%d] Unable to disconnect: %s\n",
__func__, __LINE__, RC_STR(rc));
return;
}
printf("Bye!\n");
}
void main(void)