eclipse-paho / eclipse-paho/paho.mqtt.java
Connection lost (32109) - java.io.EOFException
- Dominant language
- Java
- Stars
- 2.3k
- Forks
- 919
- PR merge metrics
- No merged PRs in 30d
Description
Please fill out the form below before submitting, thank you!
- [*] Bug exists Release Version 1.2.0 ( Master Branch) > true
- [*] Bug exists in Snapshot Version 1.2.1-SNAPSHOT (Develop Branch) > true
I used [eclipse MQTT][1] for connect to MQTT server.
I can connect to server successfully but when i publish message , i got this error
> Connection lost
msg : Connection lost
loc : Connection lost
cause : java.io.EOFException
excep : Connection lost (32109) - java.io.EOFException
I searched for this problem . but i can't find any true answer ! some link i founded in here {[here][2] , [here][3] , [here][4] , ... }
My code :
private final String DEFAULT_HOST = "31.13.72.5";
private final int DEFAULT_PORT = 443;
public void connect(String protogle) throws Exception {
this.broker = protogle + "://"+ DEFAULT_HOST + ":" + DEFAULT_PORT;
this.mqttClient = new MqttClient(broker,getMqttClientId() ,new MemoryPersistence() );
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
connOpts.setKeepAliveInterval( MQTT_KEEPALIVE);
connOpts.setUserName( getMqttUsername() );
connOpts.setPassword( getMqttPassword().toCharArray() );
//connOpts.setMqttVersion( 3 );//some times it have an error
//connOpts.setSocketFactory(SSLTunnelSocketFactory.getInstance());
Logger.w("Connecting to broker: "+broker);
Logger.w("isConnected:"+mqttClient.isConnected());
try {
IMqttToken cn = mqttClient.connectWithResult(connOpts);
Logger.w("connected");
}catch (MqttException me){
System.out.println("reason "+me.getReasonCode());
System.out.println("msg "+me.getMessage());
System.out.println("loc "+me.getLocalizedMessage());
System.out.println("cause "+me.getCause());
System.out.println("excep "+me);
return;
}
this.mqttClient.setCallback(new MqttCallback() {
@Override
public void connectionLost(Throwable me) {
Logger.w("Connection lost");
System.out.println("msg "+me.getMessage());
System.out.println("loc "+me.getLocalizedMessage());
System.out.println("cause "+me.getCause());
System.out.println("excep "+me);
}
@Override
public void messageArrived(String s, MqttMessage mqttMessage) throws Exception {
Logger.w("message Arrived");
}
@Override
public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
Logger.w("deliverd--------");
try {
MqttDeliveryToken token = (MqttDeliveryToken) iMqttDeliveryToken;
String h = token.getMessage().toString();
Logger.w("deliverd message :"+h);
} catch (MqttException me) {
System.out.println("reason "+me.getReasonCode());
System.out.println("msg "+me.getMessage());
System.out.println("loc "+me.getLocalizedMessage());
System.out.println("cause "+me.getCause());
System.out.println("excep "+me);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
And publish method :
private void publish(String topic , String payload , int qosLevel) throws Exception {
Logger.w("start publishing :");
//payload = Helper.zlib_encode(payload);
topic = mapTopic(topic);
MqttMessage message = new MqttMessage();
message.setPayload(payload.getBytes("UTF-8") );
message.setQos(0);
mqttClient.publish(topic , message);
Logger.w("publised------------------");
}
output :
Connecting to broker: ssl://31.13.72.5:443
isConnected:false
connected
start publishing :
deliverd--------
publised------------------
deliverd message : //my message
Connection lost
msg : Connection lost
loc : Connection lost
cause : java.io.EOFException
excep : Connection lost (32109) - java.io.EOFException
[1]: https://www.eclipse.org/paho/
[2]: https://github.com/emqtt/emqttd/issues/551
[3]: https://stackoverflow.com/questions/33998919/eclipse-paho-mqttgetting-java-io-eof-exception
[4]: https://stackoverflow.com/questions/19813101/java-io-eofexception-with-paho
Contributor guide
Assessment
This issue has not been assessed yet.