【问题标题】:File transfers by using MQTT使用 MQTT 传输文件
【发布时间】:2019-04-23 21:45:56
【问题描述】:

我正在开发一个能够与远程服务器通信的 C++ 应用程序,我想使用 MQTT,因为它可靠且易于实现。我还需要进行文件传输,我想知道是否可以使用 MQTT 执行此操作。

如果可以,是否可以获取下载进度状态和下载速度?

我在谷歌上搜索,似乎可以,但我没有得到非常明确的答案。

谢谢你

【问题讨论】:

    标签: c++ mqtt file-transfer


    【解决方案1】:

    MQTT 是一个消息系统,您可以在消息中包含任何您想要的内容。

    MQTT 消息负载只是字节的集合,使用这些字节发送文件很简单(假设文件大小小于 256mb,因为这是单个消息的最大大小)

    如果您想发送较大的文件,则必须实施将其分解为较小部分的方案,这可能包括文件名、部分数量、当前部分编号、总文件大小等内容。

    使用这些信息,您可以确定传输速率,但如果您首先看到的文件适合单个消息,则整个消息会到达您的客户端内存中,因此计算速度不会很困难。如果你真的需要,那么最好的办法是将文件分成更小的部分。

    【讨论】:

    • 感谢 hardillb 的回答。通常我只需要发送最大 50MB 的文件。我正在使用用于 C++ 的 paho MQTT 库,但我不知道何时发布时如何获得上传速度。
    • 你不能,当你将文件分成几部分并使用发布回调来计算速率时,你必须自己解决这个问题
    猜你喜欢
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2010-11-18
    • 2011-04-09
    • 2017-01-29
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多