Mosquitto.h 未定义 "struct mosquitto" 内容
Mosquitto.h does not define "struct mosquitto" contents
据我了解,当客户端连接时,我必须检查会话是否持久,如果不是,则执行订阅感兴趣的主题。我正在使用 Mosquitto 1.5 版。
我没有找到使用 API 调用检查此 属性 的方法,但发现 struct mosquitto
中有 clean_session
布尔字段。但是当我尝试以这种方式访问它时:
void my_connect_callback(struct mosquitto *mosq, void *userdata, int result)
{
log("Connected, session persistency",(int)(mosq->clean_session));
我收到错误 取消引用指向不完整类型的指针。一旦 mosquitto.h
没有定义 struct mosquitto
中的字段,这似乎是正常的。名为 mosquitto_internal.h
的文件确实有它,但它似乎并未设计为包含在应用程序项目中。
这里有什么问题?
更新(在@hardillb 评论之后): (1) 我没有找到文档说明 mosquitto 结构中的 clean_session
与我传递给 mosquitto_new
; (2) 文档 here 说
The CONNACK message contains two data entries:
- The session present flag
- A connect return code
“会话存在标志”在连接回调数据或 mosquitto 结构本身中的某处是合乎逻辑的。因此我猜测结构中的 clean_session
是连接函数返回的值。接下来,同一来源说:
The session present flag tells the client whether the broker already
has a persistent session available from previous interactions with the
client. When a client connects with Clean Session set to true, the
session present flag is always false because there is no session
available. If a client connects with Clean Session set to false, there
are two possibilities: If session information is available for the
clientId. and the broker has stored session information, the session
present flag is true.
这个 session_present
标志在哪里 - 以便应用程序知道当前连接是先前连接的延续并且不会重新订阅相同的主题?
据我了解,当客户端连接时,我必须检查会话是否持久,如果不是,则执行订阅感兴趣的主题。我正在使用 Mosquitto 1.5 版。
我没有找到使用 API 调用检查此 属性 的方法,但发现 struct mosquitto
中有 clean_session
布尔字段。但是当我尝试以这种方式访问它时:
void my_connect_callback(struct mosquitto *mosq, void *userdata, int result)
{
log("Connected, session persistency",(int)(mosq->clean_session));
我收到错误 取消引用指向不完整类型的指针。一旦 mosquitto.h
没有定义 struct mosquitto
中的字段,这似乎是正常的。名为 mosquitto_internal.h
的文件确实有它,但它似乎并未设计为包含在应用程序项目中。
这里有什么问题?
更新(在@hardillb 评论之后): (1) 我没有找到文档说明 mosquitto 结构中的 clean_session
与我传递给 mosquitto_new
; (2) 文档 here 说
The CONNACK message contains two data entries:
- The session present flag
- A connect return code
“会话存在标志”在连接回调数据或 mosquitto 结构本身中的某处是合乎逻辑的。因此我猜测结构中的 clean_session
是连接函数返回的值。接下来,同一来源说:
The session present flag tells the client whether the broker already has a persistent session available from previous interactions with the client. When a client connects with Clean Session set to true, the session present flag is always false because there is no session available. If a client connects with Clean Session set to false, there are two possibilities: If session information is available for the clientId. and the broker has stored session information, the session present flag is true.
这个 session_present
标志在哪里 - 以便应用程序知道当前连接是先前连接的延续并且不会重新订阅相同的主题?