如何在c++中使用蚊子发布文件?
How can I publish a file using Mosquitto in c++?
我使用蚊子到c++包装器发布消息/文件。
在我的测试中,我可以轻松地发送包含文本的消息,但是我如何发送文件呢?
我的发布者方法是:
bool Publisher::publish(const char* message) {
const int ret = mosquittopp::publish(NULL, topic_, strlen(message),
(uint8_t*) message);
/* custom log for mosquitto passing res and what I'm doing */
MosquittoLog::checkResult(ret, "sending message");
return (ret == MOSQ_ERR_SUCCESS);
}
我发现这篇文章解释了如何用python发布文件。
在c++中几乎是一样的吗?
如果是,如何区分订阅服务器上的文件和纯文本?
void Subscriber::on_message(const struct mosquitto_message* message) {
/* pseudode
if message is file do A
else if plainText do B
*/
}
大致:
发布文件
- 读取文件到内存缓冲区
- 传递它,它的长度发布(…)
读取文件
http://courses.cs.vt.edu/cs2604/fall02/binio.html阅读
出版
从蚊子到文档中我不明白的是,您是否可以在发布缓冲区后立即销毁它,或者它是否需要挂起直到发送MQTT消息。
区分数据类型
在有效负载前加上描述数据类型的标志。或者为不同的数据类型使用不同的MQTT主题。如果做不到这一点,根据您需要的空间效率,您可以将有效负载包装在protobuf、JSON或XML消息中。
相关文章:
- 从对象文件(.o)在macos上制作归档文件(.a文件)
- 有没有办法读取C++中的文件文件夹?
- 错误C1083:无法打开包含文件.文件正确包含在代码中
- NDK 无法看到头文件 .h 文件
- 文件文件夹关联或归属
- 利布代夫如何将轮询与文件描述符一起使用
- 如何以阻止的方式删除文件/文件夹
- 在MFC中序列化为Unicode文本文件-文件头错误
- (Qt C++)如何从QTableView将所选文件/文件夹打印到文本文件中
- 获取带有POCO的服务可执行文件文件夹
- 如何从文件文件夹创建自定义文件类型
- 如何在windows7有限内存的电脑上读取大文件?文件大小为25GB,但RAM容量只有16GB
- c++以二进制方式读取文件.文件结束的问题
- 如何在linux的makefile中使用头文件(.h)文件中定义的宏定义
- 如何从文件夹中读取文件?文件夹包含不同类型的文件名
- 如何查找指向文件/文件夹的所有硬链接和符号链接(Windows和UNIX)
- 生成临时文件/文件夹 c++ GTEST
- 更改应用程序文件(. c文件)的名称
- 使用vc++2010从usb读取文件/文件夹
- 为特定的文件/文件夹禁用-Wall标志