Я запускаю mqtt server
на raspberry pi
вместе с mqtt client
на телефоне Android.Последовательность данных будет передаваться с сервера на клиент по TCP.
На стороне сервера int[] result
имеет переменную длину (т. Е. 512, 1024, 2048,4096,8192, ...):
private void processPublish(int[] result) {
String publishMessage ="myseq1";
for (int i=0; i<result.length; i++)
publishMessage += "," + result[i];
service.publish(TOPIC_STATUS, publishMessage);
}
На телефоне
private class MqttCallbackHandler implements MqttCallback {
@Override
public void connectionLost(Throwable throwable) {
main.setBackgroundResource(R.drawable.background_disable);
connect_imageview.setImageResource(R.drawable.mq_disconnected);
Log.d(LOG_TAG, throwable.toString());
}
@Override
public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
String message = new String(mqttMessage.getPayload());
final String[] messageArray = message.split(",");
if ((messageArray[0].equals("myseq1")) ){
xxxxxx;
}
}
@Override
public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) {
//
}
Я попытался выяснить, сколько времени занимает передача данных по:
Date date = new Date();
SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss.SSS");
К моему удивлению, потребление временипередача данных увеличивается экспоненциально при увеличении int[] result
.
длина 512, 0,059 секунды, длина 1024, 0,201 секунды, длина 2048, 0,463 секунды, длина 4096, 1,335 секунды, длина 8192, 4,942 секунды,
Пожалуйстапомогите, заранее спасибо
PS Я занял org.eclipse.paho.client.mqttv3-1.0.2.jar
как библиотеки.