emqx能不能扩展自定义安全加密组件

具体情况需求就是,由于一些原因,无法使用ssl的方式连接,想自己实现加密(不光是针对内容的加密,而是整个传输过程的加密),看过exhook和插件的文档,貌似都是针对钩子来做开发的,难以满足这个要求。

因为 payload 本质就是二进制,所以你可以在发送方进行加密,在接收方进行解密,或者需要你自己修改 EMQX 的源代码了

是不是也可以通过接入自定义协议这个来实现呢?看文档中的实例都是基于事件钩子来做扩展的,但是我在源码里看到如下内容
"

  1. emqx-extension-hook 提供了使用 Java, Python 向 Broker 挂载钩子的功能

  2. emqx-exproto 提供了使用 Java,Python 编写用户自定义协议接入插件的功能

但在后续的支持中发现许多难以处理的问题:

  1. 有大量的编程语言需要支持,需要编写和维护如 Go, JavaScript, Lua… 等语言的驱动。

  2. erlport 使用的操作系统的管道进行通信,这让用户代码只能部署在和 emqx 同一个操作系统上。部署方式受到了极大的限制。

  3. 用户程序的启动参数直接打包到 Broker 中,导致用户开发无法实时的进行调试,单步跟踪等。

  4. erlport 会占用 stdin stdout

因此,我们计划重构这部分的实现,其中主要的内容是:

  1. 使用 gRPC 替换 erlport

  2. emqx-extension-hook 重命名为 emqx-exhook
    ",感觉应该可以通过自定义协议来解决目前的问题,请问有没有自定义协议接入的相关文档或示例吗?

看起来你在使用 4.x ?
你可以看下这个 ExProto 协议网关 | EMQX 企业版文档, 目前应该只有 ExProto 符合你的需求
(注意这个文档是 5.x 的)

我是在用5.7.0,不过我下载了源码,在里面看到上面的内容。想的是4.X都支持协议接入,5.X的版本应该也可以支持。

好的,我先看看,谢谢。