我在谷歌上搜索过这个,但显然没有人尝试过这个或者这不是最佳实践。
我得到了 MQTT 客户端对象并且能够通信,当我想保存他们的聊天并打扰客户端时出现问题,以便当他们中的任何一个上线或离线时另一个可以得到通知。
一个伪代码或只是一个指导这种方法的流程就足够了,因为我无法想象上述过程的流程。
请指导我阅读教程或帮助我了解此处的流程。
这是我准备作为研究 MQTT 系统的一部分的演示。
最佳答案
您正在寻找的是可以使用 MQTT 实现的,但您需要使用两个功能。
首先,您必须确保您的客户端使用非干净 session 进行连接(并确保它们始终使用相同的客户端名称进行连接,该名称对它们而言必须是唯一的)。这将确保客户端的状态保存在 MQTT 代理上;换句话说,只需在客户端第一次连接时添加订阅。
其次,您需要使用 QoS 1 订阅和 QoS 1 发布。以 QoS 1 发布将保证消息已被 MQTT 代理成功接收并传送到所有目的地。 QoS 1 订阅将保证将消息传递给客户端,无论它在发布时是否在线(假设它在当前离线时请求了非干净 session )。
此外,我建议使用 QoS 0 在客户端“在线”时发送通知(但所有其他“聊天”消息可以并且应该在 QoS 1 下发送/接收)。
关于ios - 我在 ios 应用程序中使用 MQTTClient,我想在订阅主题时保存用户的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32250339/