我正在开发一款能够与远程服务器通信的C++应用程序,我希望使用MQTT,因为它可靠且易于实现。还需要进行文件传输,不知道是否可以使用MQTT完成。
如果可以,是否可以获取下载进度状态和下载速度?
我在谷歌上搜索了一下,似乎是可以实现的,但并没有得到非常清晰的答案。
感谢您。
我正在开发一款能够与远程服务器通信的C++应用程序,我希望使用MQTT,因为它可靠且易于实现。还需要进行文件传输,不知道是否可以使用MQTT完成。
如果可以,是否可以获取下载进度状态和下载速度?
我在谷歌上搜索了一下,似乎是可以实现的,但并没有得到非常清晰的答案。
感谢您。
MQTT是一种消息传递系统,你可以在消息中包含任何想要的内容。
MQTT消息负载只是一组字节,使用它们来发送文件非常简单(假设文件大小不超过256mb,因为这是单个消息的最大大小)。
如果你想发送更大的文件,则需要实现一种将其分解成较小部分的方案,这可能包括文件名、部分数量、当前部分号以及总文件大小等信息。
有了这些信息,你就可以确定传输速率,但是由于一个符合单个消息大小的文件首先会完整到达客户端内存中,因此计算传输速度并不难。如果你真的需要计算传输速度,那么最好的方法是将文件分成更小的部分。