代码之家  ›  专栏  ›  技术社区  ›  scharan

Watson物联网和节点。JS-连续重试和连接失败

  •  0
  • scharan  · 技术社区  · 7 年前

    我正在创建一个节点。用于模拟设备的js Web应用程序&将事件发布到节点Red应用程序(&P);在Watson物联网平台中注册的设备。

    节点red应用程序订阅事件并执行自定义逻辑。

    作为节点的一部分。js web应用程序,单击web应用程序中的提交按钮,我正在提交一个带有文本框值的post请求。我正在应用程序中处理请求。js和发布事件

    当我第一次提交请求时,它工作得非常好。但从第二次开始,它不断尝试重新连接并重复发布事件

    应用程序。js代码

    app.post('/status/data', function(req, res) {    console.log("3rd param is " + req.body.eid);      application.connect();   console.log("Successfully connected to our IoT service!");      application.on("connect", function () {         console.log("About to publish data ");        application.publishDeviceEvent(deviceType, deviceId, eventType, eventFormat, eventData);         console.log("published data ");    });     res.writeHead(200, "OK", {'Content-Type': 'text/plain'});   res.end();       }); 
    

    首次post请求-日志详细信息

    ssl://9z9mtd.messaging.internetofthings.ibmcloud.com:88832017年6月29日 04:13:04.786 PM APP/PROC/WEB/0成功连接到我们的物联网 服务2017年6月29日04:13:04.814 PM APP/PROC/WEB/0即将发布 数据2017年6月29日04:13:04.855 PM APP/PROC/WEB/0 iot-2/type/CardSim/id/EB27FNW/evt/update/fmt/json, APP/PROC/WEB/0发布数据2017年6月29日04:13:04.855 PM APP/PROC/WEB/0[应用客户端:连接]应用客户端 已连接2017年6月29日04:13:04.855 PM RTR/1

    第二次POst请求-日志详细信息

    APP/PROC/WEB/0[BaseClient:connect]通过主机连接到物联网: ssl://9z9mtd.messaging.internetofthings.ibmcloud.com:88832017年6月29日 [2017-06-29T10:43:52.857+0000]“POST/status/data HTTP/1.1”200 10 0 “-”“Mozilla/5.0(Windows NT 6.1;WOW64;rv:45.0)Gecko/20100101 x_forwarded_for:“167.230.96.8”x_proto:“https” vcap_请求_id:“0801beea-5ab8-434b-403d-6c5cc92e9aad” app_id:“0cdbfec6-ac2a-4be1-9bab-3b1933ba3c57”app_索引:“0” x\u global\u transaction\u id:“1003954655”x\u b3\u traceid:“920cb5951fe2dee3” 04:13:52.908 PM APP/PROC/WEB/0成功连接到我们的物联网 [BaseClient:onClose]连接已关闭。2017年6月29日04:13:52.929 PM APP/PROC/WEB/0[BaseClient:connect]Iotfclient处于脱机状态。正在重试 [BaseClient:connect]3秒后重试。计数:2017年6月29日1 04:13:52.928 PM APP/PROC/WEB/0[应用客户端:连接] 应用客户端已连接2017年6月29日下午04:13:52.930 iot-2/type/CardSim/id/EB27FNW/evt/update/fmt/json,

    1 回复  |  直到 7 年前
        1
  •  1
  •   Paul Slater    7 年前

    对于应用程序的每个帖子,您都(重新)连接到IoTP并注册on-connect()回调。

    在POST函数中,您只需要调用 publishDeviceEvent() .

    笔记 publishDeviceEvent()