Estoy tratando de volver a conectarme en MQTT. Tengo muchas páginas, cada página recibió datos de diferentes sensores. Traté de usar reconnect: true y keepaliveIInterval: 30, pero eso hizo que mi aplicación se bloquee después de unos minutos y no me permite navegar a otra página, así que probé otra solución que es invocar la función de conexión después de cada pérdida de conexión (porque cuando navego a otra página, se pierde la conexión), pero eso no funciona. Devuelve los últimos datos después de cambiar a otra página para que no reenvíe la suscripción. Cualquier ayuda es apreciada.
constructor(){ super(); this.onMessageArrived = this.onMessageArrived.bind(this) this.onConnectionLost = this.onConnectionLost.bind(this) this.onConnect = this.onConnect.bind(this) this.onFailure = this.onFailure.bind(this) const client = new Paho.MQTT.Client(host, Number(port), clientID); client.onMessageArrived = this.onMessageArrived; client.onFailure = this.onFailure; client.MQTTconnect = this.MQTTconnect; client.connect({ onSuccess : this.onConnect, userName: "admin", password: "admin", onFailure : this.onFailure, }); componentDidMount() { this.onConnect = this.onConnect.bind(this); } onFailure(responseObject) { if (responseObject.errorCode !== 0) { console.log("Connection Attempt to host"+ host +" Failed"); } } MQTTconnect() { const client = new Paho.MQTT.Client(host, Number(port), clientID); client.onMessageArrived = this.onMessageArrived; client.connect({ onSuccess : this.onConnect, userName: "admin", password: "admin", onFailure : this.onFailure, }); } onConnectionLost(responseObject) { if (responseObject.errorCode !== 0) { console.log("onConnectionLost : "+responseObject.errorMessage); this.setState({error: 'Lost Connection', isConnected: false}); this.MQTTconnect(); } }