一个用户可以允许多少个MQTT客户端共用?

通过http api认证方式,一个客户端设置唯一clientId 加上用户名密码可以登录MQTT客户端,但是多个客户端设置不同的唯一cliendId 加上相同的用户名和密码也可以登录!我想问的是:

  1. 一个用户可以给多个MQTT客户端登录共同在线这是建议的嘛?

  2. 一个用户最多可以允许多少MQTT客户端共用呢?

3.一个用户多个MQTT客户端共用 多少个连接比较合适? 相比一个用户一个MQTT客户端使用,哪个更好一点? 瓶颈在哪?

  • 一对 用户名/密码 可以让任意多个客户端登陆,这是符合协议规范的。
    • 但如果业务设计上有其他 ACL 机制来控制客户端的订阅/发布权限,这样做也是可以的。(例如通过 ClientID/IP白名单等机制进行鉴权)
    • 如果没有其他机制保证客户端的订阅发布权限控制,不建议这样做。
  • EMQX 不限制一对 用户名/密码 登陆过的客户端数量。
    • 使用 HTTP API AuthN 进行客户端认证,可以通过 WebHook 向指定 HTTP Server 发送客户端离线事件,在你的 HTTP Server 端对登陆数量进行计数。
  • 如果有一机一密要求,可以在 HTTP AuthN 的请求模板中配置使用 ClientID 进行认证。参考文档: 认证占位符