如何在 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"
}
do npm build
,这将生成一个 bundle.js,其中包含所有 javascript 文件和指定给 bundle.js
的依赖项
在您的网络 html 文件中包含 bundle.js。 ...<script src="bundle.js"></script>
在"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);
});
我在 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. 像这样
"scripts": {
"build": "browserify your.js | uglifyjs -m -c warnings=false > bundle.js"
}
do
的依赖项npm build
,这将生成一个 bundle.js,其中包含所有 javascript 文件和指定给 bundle.js在您的网络 html 文件中包含 bundle.js。
...<script src="bundle.js"></script>
在"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); });