我对React Native还是很陌生,但是我创建了一个简单的应用程序,该应用程序具有一个按钮和单击该按钮时会更改的文本。但是,我想连接到IoT中心并从该中心接收信息。
我目前在连接方面遇到问题。这是我的代码:
import React from 'react';
import {StyleSheet, Dimensions, Alert, Text, View, Image, Button} from 'react-native';
const { width, height } = Dimensions.get("window");
'use strict';
var iothub = require('azure-iothub');
var connectionString = 'connection string';
var Mqtt = require('azure-iot-device-mqtt').Mqtt;
var DeviceClient = require('azure-iot-device').Client
var Message = require('azure-iot-device').Message;
var client = DeviceClient.fromConnectionString(connectionString, Mqtt);
// Create a message and send it to the IoT hub every second
setInterval(function(){
// Simulate telemetry.
var temperature = 20 + (Math.random() * 15);
var message = new Message(JSON.stringify({
temperature: temperature,
humidity: 60 + (Math.random() * 20)
}));
// Add a custom application property to the message.
// An IoT hub can filter on these properties without access to the message body.
message.properties.add('temperatureAlert', (temperature > 30) ? 'true' : 'false');
console.log('Sending message: ' + message.getData());
// Send the message.
client.sendEvent(message, function (err) {
if (err) {
console.error('send error: ' + err.toString());
} else {
console.log('message sent');
}
});
}, 1000);
以上部分是Node.js
代码,但是我想在React应用程序中使用它。如何在React中使用Node包?
我遇到以下错误:Could not connect to development server.
谢谢。
答案 0 :(得分:0)
与您的other question一样,我建议您看看Azure IoT Starter Kit Companion,它是一个示例 React Native 应用程序,可帮助您获取 IoT设备连接到 iOS , Android 和 Windows 上的 IoT中心。
希望有帮助!
答案 1 :(得分:0)
一点,您不应该发布连接字符串。这是一个相当大的安全问题。
答案 2 :(得分:0)
如您的other question中所述,Azure IoT中心设备SDK需要一个Node.js运行时,该运行时在React Native应用程序中不存在。
React Native有一个名为nodejs-mobile-react-native的插件,可引入Node.js运行时,并使您能够与React Native应用程序一起运行Node.js应用程序。
我为此主题写了detailed blog post,概述了实现该主题所需的步骤。