Session 我们可以在MQTT体系结构中复制HTTP会话思想吗?

Session 我们可以在MQTT体系结构中复制HTTP会话思想吗?,session,mqtt,aws-iot,Session,Mqtt,Aws Iot,粗略地说,HTTP会话是一种秘密,在检查用户的凭据后,服务器将其发送给客户端(例如浏览器)。这个秘密通过所有后续HTTP请求传递,并将识别用户。这很重要,因为HTTP是无状态的 现在我有一个场景,在AWS IoT内核中,机器和MQTT代理之间存在通信。机器显示一些屏幕。第一个屏幕是登录名和密码 这里的想法是,在第一个屏幕之后,如果凭证被验证,服务器应该生成一个“会话”,我们应该在屏幕页面上发送这个“会话”。机器应在所有后续消息中发送此“会话”,并且服务器必须在任何操作之前验证此字符串。这是由电气

粗略地说,HTTP会话是一种秘密,在检查用户的凭据后,服务器将其发送给客户端(例如浏览器)。这个秘密通过所有后续HTTP请求传递,并将识别用户。这很重要,因为HTTP是无状态的

现在我有一个场景,在AWS IoT内核中,机器和MQTT代理之间存在通信。机器显示一些屏幕。第一个屏幕是登录名和密码

这里的想法是,在第一个屏幕之后,如果凭证被验证,服务器应该生成一个“会话”,我们应该在屏幕页面上发送这个“会话”。机器应在所有后续消息中发送此“会话”,并且服务器必须在任何操作之前验证此字符串。这是由电气工程团队创建的请求

在我看来,在软件开发方面,这似乎毫无意义,因为AWS IoT Core broker(MQTT)中连接的所有机器都必须使用证书——验证已经完成了

除此之外,MQTT代理还提供会话持久性功能。我知道代理端的会话(QoS 0/1)与消息的传递和接收的可信度有关


也就是说,可以使用MQTT中的会话持久性来定义HTTP中的会话行为,以便跨设备中的屏幕识别用户吗?如果是,如何进行?

否,HTTP会话概念与MQTT会话在任何方面都不相似。MQTT客户机会话中保存的唯一内容是订阅主题的列表,HTTP会话可以保存任意数据

此外,MQTT消息不包含有关用户的信息,甚至不包含在将消息传递给订阅者时发布消息的客户机的信息,唯一存在的信息是消息负载及其发布到的主题

虽然MQTTv5添加了包含更多元数据的选项,但尝试添加用户会话的概念就像尝试使一个方钉适合于圆孔

如果您想实现一些东西作为消息负载的一部分,那么这完全取决于您,但与传输协议无关