diff --git a/apps/emqx_connector/i18n/emqx_connector_mqtt_schema.conf b/apps/emqx_connector/i18n/emqx_connector_mqtt_schema.conf index 395967dec..7690596e7 100644 --- a/apps/emqx_connector/i18n/emqx_connector_mqtt_schema.conf +++ b/apps/emqx_connector/i18n/emqx_connector_mqtt_schema.conf @@ -40,7 +40,25 @@ MQTT 桥的模式。 可用的类型有“cluster_singleton”,“cluster_shar label: { en: "Broker IP And Port" zh: "Broker主机和端口" - } + } + } + + bridge_mode { + desc { + en: """ +If enable bridge mode. +NOTE: This setting is only for MQTT protocol version older than 5.0, and the remote MQTT +broker MUST support this feature. + """ + zh: """ +是否启用 Bridge Mode。 +注意:此设置只针对 MQTT 协议版本 < 5.0 有效,并且需要远程 MQTT Broker 支持 Bridge Mode。 + """ + } + label { + en: "Bridge Mode" + zh: "Bridge 模式" + } } proto_ver { diff --git a/apps/emqx_connector/src/emqx_connector_mqtt.erl b/apps/emqx_connector/src/emqx_connector_mqtt.erl index 456137d90..e0e750c3d 100644 --- a/apps/emqx_connector/src/emqx_connector_mqtt.erl +++ b/apps/emqx_connector/src/emqx_connector_mqtt.erl @@ -224,6 +224,7 @@ basic_config(#{ server := Server, reconnect_interval := ReconnIntv, proto_ver := ProtoVer, + bridge_mode := BridgeMode, username := User, password := Password, clean_start := CleanStart, @@ -246,7 +247,7 @@ basic_config(#{ %% When the load balancing server enables mqtt connection packet inspection, %% non-standard mqtt connection packets will be filtered out by LB. %% So let's disable bridge_mode. - bridge_mode => false, + bridge_mode => BridgeMode, username => User, password => Password, clean_start => CleanStart, diff --git a/apps/emqx_connector/src/mqtt/emqx_connector_mqtt_schema.erl b/apps/emqx_connector/src/mqtt/emqx_connector_mqtt_schema.erl index 25dc4a50f..e4eea39db 100644 --- a/apps/emqx_connector/src/mqtt/emqx_connector_mqtt_schema.erl +++ b/apps/emqx_connector/src/mqtt/emqx_connector_mqtt_schema.erl @@ -75,6 +75,14 @@ fields("connector") -> desc => ?DESC("proto_ver") } )}, + {bridge_mode, + sc( + boolean(), + #{ + default => false, + desc => ?DESC("bridge_mode") + } + )}, {username, sc( binary(),