我正在使用https://www.npmjs.com/package/react_native_mqtt中的react_native_mqtt来在react原生函数式编程中使用MQTT
集成后无法连接到mqtt服务器可以任何一个帮助它.
import { Stack, StyleSheet, View, FlatList, SafeAreaView,StatusBar,ScrollView } from 'react-native';
import React, { useEffect } from 'react';
import { Button } from '@rneui/base';
import { Text, Divider, useTheme } from '@rneui/themed';
import init from 'react_native_mqtt';
import AsyncStorage from '@react-native-async-storage/async-storage';
const DATA = [{"id":1,"title":"Effect 1"},{"id":2,"title":"Effect 2"},{"id":3,"title":"Effect 3"},{"id":4,"title":"Effect 4"},{"id":5,"title":"Effect 5"},{"id":6,"title":"Effect 6"},{"id":7,"title":"Effect 7"},{"id":8,"title":"Effect 8"},{"id":9,"title":"Effect 9"},{"id":10,"title":"Effect 10"},{"id":11,"title":"Effect 11"},{"id":12,"title":"Effect 12"},{"id":13,"title":"Effect 13"},{"id":14,"title":"Effect 14"},{"id":15,"title":"Effect 15"},{"id":16,"title":"Effect 16"},{"id":17,"title":"Effect 17"},{"id":18,"title":"Effect 18"},{"id":19,"title":"Effect 19"},{"id":20,"title":"Effect 20"},{"id":21,"title":"Effect 21"},{"id":22,"title":"Effect 22"},{"id":23,"title":"Effect 23"},{"id":24,"title":"Effect 24"},{"id":25,"title":"Effect 25"},{"id":26,"title":"Effect 26"},{"id":27,"title":"Effect 27"},{"id":28,"title":"Effect 28"},{"id":29,"title":"Effect 29"},{"id":30,"title":"Effect 30"},{"id":31,"title":"Effect 31"}];
init({
size: 10000,
storageBackend: AsyncStorage,
defaultExpires: 1000 * 3600 * 24,
enableCache: true,
reconnect: true,
sync : {
}
});
const Item = ({title}) => (
<View style={styles.buttonsContainer}>
<Button title={title}
containerStyle={{
width: '90%',
marginHorizontal: 50,
marginVertical: 3,
}}
/>
<Divider />
</View>
);
const Home = () => {
useEffect(() => {
const client = new Paho.MQTT.Client('broker.hivemq.com', 1883,'jee-000001');
console.log ("Welcome MQTT Portal");
client.onConnectionLost = onConnectionLost;
client.onMessageArrived = onMessageArrived;
client.connect({ onSuccess:onConnect, useSSL: false });
}, []);
function onConnect() {
console.log("onConnect");
client.subscribe("jee/stair/001");
message = new Paho.MQTT.Message("1");
message.destinationName = "jee/stair/001";
client.send(message);
}
function onConnectionLost(responseObject) {
if (responseObject.errorCode !== 0) {
console.log("onConnectionLost:"+responseObject.errorMessage);
}
}
function onMessageArrived(message) {
console.log("onMessageArrived:"+message.payloadString);
}
return (
<SafeAreaView style={styles.container}>
<FlatList
data={DATA}
renderItem={({item}) => <Item title={item.title} />}
keyExtractor={item => item.id}
/>
</SafeAreaView>
)
}
export default Home
const styles = StyleSheet.create({
contentView: {
flex: 1,
},
buttonsContainer: {
flexDirection: 'row',
flexWrap: 'wrap',
justifyContent: 'center',
alignItems: 'center',
width: '100%',
marginVertical: 3,
},
subHeader: {
backgroundColor : "#2089dc",
color : "white",
textAlign : "center",
paddingVertical : 6,
marginBottom : 10
}
});
字符串
连接方法上没有控制台登录
使用类编程https://github.com/Introvertuous/react-native-mqtt/blob/master/example/MqttLog.js
使用相同的Broket
获取错误{“errorCode”:7、“errorMessage”:“AMQJS 0007 E套接字错误:undefined.",“invocationContext”:未定义的
1条答案
按热度按时间t5fffqht1#
使用Functional类
字符串