我在 ios 应用程序中使用 MQTTClient,我想在订阅主题时保存用户的数据

I am using MQTTClient In an ios App where i would like to save the data of an user when it subscribes to the topic

我在 google 上搜索过这个,但显然没有人尝试过这个或者这不是最佳实践。

我得到了 MQTT 客户端对象并且能够通信,当我想保存他们的聊天并打扰客户端时出现问题,以便当他们中的任何一个上线或离线时另一个可以得到通知。

一个伪代码或一个指导这种方法的流程就足够了,因为我无法想象上述过程的流程。

请引导我查看教程或帮助我了解这里的流程。

这是我准备作为研究 MQTT 系统的一部分的演示。

您正在寻找的东西可以使用 MQTT 实现,但您需要使用两个功能。

首先,您必须确保您的客户端使用非干净会话进行连接(并确保它们始终使用相同的客户端名称进行连接,该名称对它们而言必须是唯一的)。这将确保客户端的状态保存在 MQTT 代理上;换句话说,只需在客户端第一次连接时添加订阅。

其次,您需要使用 QoS 1 订阅和 QoS 1 发布。以 QoS 1 发布将保证消息已被 MQTT 代理成功接收并传送到所有目的地。 QoS 1 订阅将保证消息将被传送到客户端,无论它在发布时是否在线(假设它在当前离线时请求了一个非干净会话)。

此外,我建议使用 QoS 0 在客户端到达时发送通知 "online"(但所有其他 "chat" 消息可以并且应该在 QoS 1 下 sent/received)。