具体情况需求就是,由于一些原因,无法使用ssl的方式连接,想自己实现加密(不光是针对内容的加密,而是整个传输过程的加密),看过exhook和插件的文档,貌似都是针对钩子来做开发的,难以满足这个要求。
因为 payload 本质就是二进制,所以你可以在发送方进行加密,在接收方进行解密,或者需要你自己修改 EMQX 的源代码了
是不是也可以通过接入自定义协议这个来实现呢?看文档中的实例都是基于事件钩子来做扩展的,但是我在源码里看到如下内容
"
-
emqx-extension-hook
提供了使用 Java, Python 向 Broker 挂载钩子的功能 -
emqx-exproto
提供了使用 Java,Python 编写用户自定义协议接入插件的功能
但在后续的支持中发现许多难以处理的问题:
-
有大量的编程语言需要支持,需要编写和维护如 Go, JavaScript, Lua… 等语言的驱动。
-
erlport
使用的操作系统的管道进行通信,这让用户代码只能部署在和 emqx 同一个操作系统上。部署方式受到了极大的限制。 -
用户程序的启动参数直接打包到 Broker 中,导致用户开发无法实时的进行调试,单步跟踪等。
-
erlport
会占用stdin
stdout
。
因此,我们计划重构这部分的实现,其中主要的内容是:
-
使用
gRPC
替换erlport
。 -
将
emqx-extension-hook
重命名为emqx-exhook
",感觉应该可以通过自定义协议来解决目前的问题,请问有没有自定义协议接入的相关文档或示例吗?
我是在用5.7.0,不过我下载了源码,在里面看到上面的内容。想的是4.X都支持协议接入,5.X的版本应该也可以支持。
好的,我先看看,谢谢。