diff --git a/iot/http_example/cloudiot_http_example.js b/iot/http_example/cloudiot_http_example.js index b3907aacd7..27b9a4d635 100644 --- a/iot/http_example/cloudiot_http_example.js +++ b/iot/http_example/cloudiot_http_example.js @@ -17,7 +17,7 @@ // [START iot_http_includes] const fs = require('fs'); const jwt = require('jsonwebtoken'); -const request = require('request'); +const request = require('retry-request'); // [END iot_http_includes] console.log('Google Cloud IoT Core HTTP example.'); @@ -141,6 +141,7 @@ function publishAsync (authToken, messageCount, numMessages) { binary_data: binaryData } }; + const options = { url: url, headers: { @@ -148,12 +149,20 @@ function publishAsync (authToken, messageCount, numMessages) { 'content-type': 'application/json', 'cache-control': 'no-cache' }, + body: postData, json: true, - body: postData + method: 'POST', + retries: 5, + shouldRetryFn: + function (incomingHttpMessage) { + return incomingHttpMessage.statusMessage !== 'OK'; + } }; + // Send events for high-frequency updates, update state only occasionally. const delayMs = argv.messageType === 'events' ? 1000 : 2000; - request.post(options, function (error, response, body) { + console.log(JSON.stringify(request)); + request(options, function (error, response, body) { if (error) { console.error('Received error: ', error); } else if (response.body.error) { @@ -182,6 +191,7 @@ function publishAsync (authToken, messageCount, numMessages) { // [START iot_http_getconfig] function getConfig (authToken, version) { console.log(`Getting config from URL: ${urlBase}`); + const options = { url: urlBase + '/config?local_version=' + version, headers: { @@ -190,9 +200,16 @@ function getConfig (authToken, version) { 'cache-control': 'no-cache' }, - json: true + json: true, + retries: 5, + shouldRetryFn: + function (incomingHttpMessage) { + console.log('Retry?'); + return incomingHttpMessage.statusMessage !== 'OK'; + } }; - request.get(options, function (error, response, body) { + console.log(JSON.stringify(request.RetryStrategies)); + request(options, function (error, response, body) { if (error) { console.error('Received error: ', error); } else if (response.body.error) { diff --git a/iot/http_example/package.json b/iot/http_example/package.json index a1aab57597..2da4f72d29 100644 --- a/iot/http_example/package.json +++ b/iot/http_example/package.json @@ -14,10 +14,10 @@ "@google-cloud/pubsub": "0.13.2", "@google-cloud/nodejs-repo-tools": "1.4.17", "ava": "0.22.0", - "yargs": "8.0.2", "jsonwebtoken": "7.4.1", - "request": "2.82.0", - "uuid": "3.1.0" + "retry-request": "3.3.1", + "uuid": "3.1.0", + "yargs": "8.0.2" }, "testDependencies": { },