TCP上的数据大小增加时,mqtt的传输速度要慢得多

时间:2019-05-16 09:25:47

标签: java mqtt

我在mqtt server上运行raspberry pi并在Android手机上运行了mqtt client。数据序列将通过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.355秒 长度8192,4.942秒

请帮助,在此先感谢

P.S。我借了org.eclipse.paho.client.mqttv3-1.0.2.jar作为图书馆。

0 个答案:

没有答案