You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pure Lua库建立MQTT SSL连接遇nil方法调用错误求助

解决Pure Lua MQTT Library SSL连接报错问题

你遇到的attempt to call a nil value (method 'ssl')错误,是因为这个库的client对象并没有单独的ssl()方法,正确的做法是将SSL配置直接整合到客户端初始化或连接参数中。

正确配置示例

方式1:初始化客户端时传入SSL参数

local client = mqtt.client{
  uri = "localhost",
  port = 8883, -- Mosquitto默认SSL监听端口
  username = "test",
  password = "test1",
  ssl = {
    mode = "client",
    protocol = "tlsv1_2",
    options = "all",
    key = "/绝对路径/到/你的私钥文件.key",
    certificate = "/绝对路径/到/你的证书文件.crt"
  }
}

client:connect()

方式2:连接时传入SSL参数

local client = mqtt.client{
  uri = "localhost",
  port = 8883,
  username = "test",
  password = "test1",
}

client:connect{
  ssl = {
    mode = "client",
    protocol = "tlsv1_2",
    options = "all",
    key = "/绝对路径/到/你的私钥文件.key",
    certificate = "/绝对路径/到/你的证书文件.crt"
  }
}

额外注意事项

  • 确认Mosquitto Broker已开启SSL监听,配置文件中需包含listener 8883及证书相关配置
  • 证书和私钥路径建议用绝对路径,避免相对路径导致的读取权限问题
  • 确保luasec模块已正确安装且被Lua环境识别

内容的提问来源于stack exchange,提问作者Timooo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:42:36