I am currently making an IoT App that I'm trying to connect to a Raspberry Pi using MQTT. I use the react_native_mqtt package. The problem I have is that it doesn't connect. What I'm trying to achieve is to receive data from the rasp and use that with react native. But the connection doesn't work. Any help is appreciated.
Error: Object { "errorCode": 7, "errorMessage": "AMQJS0007E Socket error:undefined.", "invocationContext": undefined, }
import init from 'react_native_mqtt'
import AsyncStorage from '@react-native-async-storage/async-storage'
init({
size: 10000,
storageBackend: AsyncStorage,
defaultExpires: 1000 * 3600 * 24,
enableCache: true,
reconnect: true,
sync : {
}
});
const host = '52.11.11.11'
const port = '8883'
const connectUrl = `mqtt://${host}:${port}`
clientID = "clientID-" + parseInt(Math.random() * 100);
export default class TestScreen extends Component {
constructor(){
super();
this.onConnectionLost = this.onConnectionLost.bind(this)
this.onConnect = this.onConnect.bind(this)
const client = new Paho.MQTT.Client(host, Number(port), clientID);
client.onConnectionLost = this.onConnectionLost;
client.connect({
onSuccess: this.onConnect,
useSSL: true,
userName: 'admin',
password: 'admin',
onFailure: (e) => {console.log("here is the error" , e); }
});
this.state = {
message: [''],
client,
messageToSend:'',
isConnected: false,
};
}
onConnect = () => {
// const { client } = this.state;
console.log("Connected!!!!");
//client.subscribe('hello/world');
this.setState({isConnected: true, error: ''})
};
Nodejs.test:
const mqtt = require('mqtt')
const host = '52.xx.xx.xx'
const port = '1883'
const clientId = `id_${Math.random().toString(16).slice(3)}`
const connectUrl = `mqtt://${host}:${port}`
const client = mqtt.connect(connectUrl, {
clientId,
clean: true,
connectTimeout: 4000,
username: 'xxx',
password: 'xxx',
reconnectPeriod: 1000,
})
module.exports = client;
const topic = 'EnergyMonitoring/energy'
client.on('connect', () => {
console.log('Connected')
client.subscribe([topic], () => {
console.log(`Subscribe to topic '${topic}'`)
})
})
client.on('message', (topic, payload) => {
console.log('Received Message :', topic, payload.toString())
})
app.listen(1883, ()=>{
console.log("server is running")
})