java数组转lost_Connection lost (32109) - java.io.EOFException

2017-10-17 11:11:40

0

I used eclipse MQTT 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 , here , here , ... }

My code :

private final String DEFAULT_HOST = "edge-mqtt.facebook.com";

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://edge-mqtt.facebook.com: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

Eclipse paho log :

============== Connection options ==============

CleanSession : true

SocketFactory : sun.security.ssl.SSLSocketFactoryImpl@6c010ee9

MqttVersion : 3

KeepAliveInterval : 60

ConTimeout : 30

UserName : . . .

SSLProperties : null

WillDestination : null

==========================================

2017-10-19 09:42:02,182 INFO [MQTT Call: Bahram091547759 ] [MqttConnectionResultHandler ] - insta connected

2017-10-19 09:42:02,187 INFO [JavaFX Application Thread ] [MqttEventHandler ] - About to resubscribe to all requested topics

2017-10-19 09:42:08,559 INFO [JavaFX Application Thread ] [MqttAsyncConnection ] - Publishing message on topic "k.,". Payload size = "3"

2017-10-19 09:42:08,739 ERROR [MQTT Rec: Bahram091547759 ] [MqttCallbackHandler ] - Connection insta lost

Connection lost (32109) - java.io.EOFException

at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java: 146)

at java.lang.Thread.run(Unknown Source)

Caused by: java.io.EOFException

at java.io.DataInputStream.readByte(Unknown Source)

at org.eclipse.paho.client.mqttv3.internal.wire.MqttInputStream.readMqttWireMess age(MqttInputStream.java:65)

at org.eclipse.paho.client.mqttv3.internal.CommsReceiver.run(CommsReceiver.java:107)

... 1 more

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值