多语言 - Lua

    • 多语言支持是作为一个插件出现,不同的语言环境,需要有不同的语言支持插件。

    为了保持兼容,该插件仍然保留在 EMQX 的发行版本中。

    Lua 的支持由 emqx-lua-hookLua - 图2 (opens new window) 实现。它包括:

    • 一套 Lua 的运行时环境,由 实现。
    • 一些控制命令,用于管理 Lua 的加载和卸载等。

    在 EMQX 发行包中,用户自定义的 Lua 脚本文件应该放在 中。

    以控制消息的发送内容为例,新增文件 data/script/test.lua

    • 实现了一个回调函数 on_message_publish,将所有发布消息的 payload 字段修改为 hello
    • register_hook 告诉 ,需要注册的回调函数名称列表。

    值得注意的是,这些回调函数的名称、参数、返回值的数据类型和个数都是固定,必须与提供的示例一致。

    脚本编写完成后,需要手动将其加载至 emqx_lua_hook 插件中:

    首先确保 emqx_lua_hook 插件已经启动:

      加载 test.luaemqx_lua_hook 中:

      执行成功,则表示脚本已成功加载。否则,请检查源文件的语法格式是否正确。

      支持的回调函数,及参数类型参考:emqx-lua-hook - README.mdLua - 图4 (opens new window)

      示例参考:

      加载指定 Lua 脚本:

      1. ## Script:脚本文件名称
      2. luahook load <Script>

      卸载指定 Lua 脚本:

      重新加载指定 Lua 脚本:

      1. luahook reload <Script>

      卸载指定 Lua 脚本,并取消跟随 一同启动:

      1. luahook disable <Script>