paho.mqtt.javascript icon indicating copy to clipboard operation
paho.mqtt.javascript copied to clipboard

Got [Error: AMQJS0011E Invalid state already connected.] when change the Screen in react native app.

Open momolly1024 opened this issue 3 years ago • 1 comments

Hi,

env: "react-native": "0.69.6", version: "paho-mqtt": "^1.1.0",

I wrote the code like this :

 function onMessage(message) {
        let data = JSON.parse(message.payloadString)
        console.log(data)
     }
function onConnectionLost(responseObject) {
        if (responseObject.errorCode !== 0) {
            console.log('onConnectionLost:' + responseObject.errorMessage)
        }
    }

useEffect(() => {
        if (something) {
            try {
                client.connect({
                    onSuccess: () => {
                        console.log('Connected!')
                        client.subscribe(`device/default`)
                        client.onConnectionLost = onConnectionLost
                        client.onMessageArrived = onMessage
                    },
                    onFailure: () => {
                        console.log('Failed to connect!')
                    },
                })
            } catch (error) {
                console.log(error)
            }
        }
    }, [something])


It works but when I change the screen(react-navigation) I will got this error: AMQJS0011E Invalid state already connected. and nothing gets.

( Only when I reload the expo can get data again.)

Is there anything I miss?

Thank you!

image

momolly1024 avatar Oct 28 '22 06:10 momolly1024

That's a sign that it has been connected and you called it again, aka you called connect more than once

avilgrimaldy avatar Dec 28 '23 12:12 avilgrimaldy