Added check to avoid creation of LostConnectionEvents for not yet completed connects (fix issue #88)

This commit is contained in:
andsel
2015-09-22 15:29:23 +02:00
parent 56f122b8b9
commit f7466fd968
5 changed files with 65 additions and 3 deletions
@@ -0,0 +1,57 @@
//@Grab(group='org.fusesource.mqtt-client', module='mqtt-client', version='1.10')
@GrabResolver(name='Paho', root="https://repo.eclipse.org/content/repositories/paho-releases/")
@Grab(group='org.eclipse.paho', module='org.eclipse.paho.client.mqttv3', version='1.0.2')
import org.eclipse.paho.client.mqttv3.MqttClient
import org.eclipse.paho.client.mqttv3.MqttConnectOptions
import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence
import org.eclipse.paho.client.mqttv3.MqttException
MqttDefaultFilePersistence subDataStore = new MqttDefaultFilePersistence("/tmp/sub")
MqttClient subClient = new MqttClient("tcp://localhost:1883", "ConnectTestCLI", subDataStore)
MqttConnectOptions connectOptions = new MqttConnectOptions()
connectOptions.setUserName("gino")
connectOptions.setPassword("fake".toCharArray())
connectOptions.setKeepAliveInterval(5)
println "Before connect with bad"
try {
subClient.connect(connectOptions)
} catch (MqttException mex) {
println "OK, catched connect with bad credentials, wait 4x keepalive"
sleep(20 * 1000)
}
println "Before connect with ok credentials"
connectOptions = new MqttConnectOptions()
connectOptions.setUserName("testuser")
connectOptions.setPassword("passwd".toCharArray())
subClient.connect(connectOptions)
println "Successfull connected"
subClient.disconnect()
println "Finished!"
//import org.fusesource.mqtt.client.BlockingConnection
//import org.fusesource.mqtt.client.MQTT
//"Usage: groovy issue88_reconnect_after_bad_credentials.groovy"
//MQTT mqtt = new MQTT()
//def host = "localhost"
//mqtt.setCleanSession(true)
//mqtt.setHost(host, 1883)
//mqtt.setUserName("gino")
//mqtt.setPassword("fake")
//
//mqtt.setClientId("BadConnecter_client")
//BlockingConnection connection = mqtt.blockingConnection()
//connection.connect()
//
////try a valid conn
//mqtt.setUserName("testuser")
//mqtt.setPassword("passwd")
//connection = mqtt.blockingConnection()
//connection.connect()
//
//connection.disconnect()
//println "exited"