如何在 Web 应用程序中将 IBMIoTF 用于 node.js?

How to use IBMIoTF for node.js in a WebApplication?

我在 node.js 服务器上测试了 IBMIoTF,它运行良好。 您可以在此处找到 IBMIoTF:https://www.npmjs.com/package/ibmiotf

现在我想在 WebApplication 中使用 IBMIoTF,我注意到文档中的这个小注释:https://www.npmjs.com/package/ibmiotf#load-the-library-in-browser

在浏览器中加载库 从 dist 目录加载 iotf-client-bundle.js 或 iotf-client-bundle-min.js

我也查看了 http://browserify.org/,但我无法让它工作。

可以在index.html

中加载库
<script src="libs/iotf/iotf-client-bundle.min.js"></script>

,但如何在 angular 模块中创建对象实例?

选项 1

我无法在 WebApplication 中使用 require。

var config = {
                       "org": "THEORG",
                       "id": "IOT_WEB_APPLICATION",
                       "auth-key": "THEKEY",
                       "auth-token": "THETOKEN",
                       "type" : "shared"
               };

var IotClient = require('ibmiotf');
var iotClient = new IotClient.IotfApplication(config);

在这种情况下我得到

angular.js:14110 ReferenceError: require is not defined

选项 2

我也尝试使用一个对象,我在 iotf-client.js 文件中找到。

  module.exports = {
    IotfDevice: _IotfDevice['default'],
    IotfManagedDevice: _IotfManagedDevice['default'],
    IotfGateway: _IotfGateway['default'],
    IotfManagedGateway: _IotfManagedGateway['default'],
    IotfApplication: _IotfApplication['default']
  };

并在我的控制器中做了这样的实现:

var config = {
               "org": "THEORG",
               "id": "IOT_WEB_APPLICATION",
               "auth-key": "THEKEY",
               "auth-token": "THETOKEN",
               "type" : "shared"
             };
var iotClient = new IotfApplication(config);

这里我得到:

angular.js:14110 ReferenceError: IotfApplication is not defined

这些选项都不起作用,但是如何为 IBMIoTF 创建一个实例? 谁能帮帮我?

您需要在构建过程中浏览 ibmiotf:
1. 在你的 package.json 中添加对 ibmiotf npm
的依赖 2.做npm install
3. 像这样

为 browserify/uglify 添加一个脚本命令到你的 package.json
"scripts": {
"build": "browserify your.js | uglifyjs -m -c warnings=false > bundle.js"
}
  1. do npm build,这将生成一个 bundle.js,其中包含所有 javascript 文件和指定给 bundle.js

    的依赖项
  2. 在您的网络 html 文件中包含 bundle.js。 ...<script src="bundle.js"></script>

  3. 在"your.js"中做这样的事情

    var config = require(YOURCONFIG); var deviceType = "YOURDEVICETYPE"; var appClient = new client.IotfApplication(config); appClient.connect(); appClient.on("connect", function () { console.log("Connected"); appClient.subscribeToDeviceEvents(deviceType); }); appClient.on("deviceEvent", function (deviceType, deviceId, eventType, format, payload) { console.log("Device Event from :: "+deviceType+" : "+deviceId+" of event "+eventType+" with payload : "+payload); });