多语言 - 协议接入

    • 可接收基于 TCP/UDP/TLS/DTLS 及 PSK 的终端连接。
    • 允许 Python, Java 代码侧订阅主题,或发布消息到 EMQ X 系统。

    多语言系统的通信及过程调用的逻辑参见:。

    与 不同的是,emqx-exproto 提供的是完全不同的回调和函数接口以实现协议接入的处理:

    我们按层级将它分为:

    连接层

    该部分主要 维持 Socket 的生命周期和数据的收发:

    • 调用 init 回调。用于通知外部模块已新建立了一个连接
    • 调用 回调。用于通知外部模块连接已关闭
    • 调用 received 回调。用于通知外部模块该连接新收到的数据包
    • 提供 close 接口。供外部模块调用,用于主动关闭连接

    协议/会话层

    该部分主要提供 PUB/SUB 接口,以实现与 EMQ X Broker 系统的消息互通。包括:

    • 提供 register 接口。供外部模块调用,用于向集群注册客户端。
    • 提供 接口。供外部模块调用,用于发布消息 EMQ X Broker 中。
    • 提供 subscribe 接口。供外部模块调用,用于订阅某主题,以实现从 EMQ X Broker 中接收某些下行消息。
    • 提供 unsubscribe 接口。供外部模块调用,用于取消订阅某主题。
    • 调用 deliver 回调。用于接收下行消息(在订阅主题成功后,如果主题上有消息,便会回调该方法)

    目前对于 emqx-exproto 提供的 SDK 有:

    注:SDK 版本与 EMQ X 的第二位版本号进行兼容。例如,在 EMQ X v4.1.4 中,应该使用 v4.1.x 的 SDK

    SDK 的概念参考:

    快速上手

    参考:emqx-exproto-java-sdk - Get Started