0

我在 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>

,但是如何在角度模块中创建对象实例?

选项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 创建实例?谁能帮我?

4

1 回答 1

1

您需要将 ibmiotf 作为构建过程的一部分进行浏览:
1. 在您的 package.json 中添加对 ibmiotf npm 的依赖
2. 执行npm install
3. 向您的 package.json 添加一个脚本命令,以便像这样进行 browserify/uglify

"scripts": {
"build": "browserify your.js | uglifyjs -m -c warnings=false > bundle.js"
}
  1. 这样做npm build,这将生成一个包含所有 javascript 文件和指定给 bundle.js 的依赖项的 bundle.js

  2. 在您的 web 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); });

于 2016-12-06T07:37:12.963 回答