fix(mqtt-bridge): transmit raw msg payload with empty template
This commit is contained in:
parent
e7883e0ee2
commit
59ac0b1424
|
@ -71,14 +71,13 @@ to_remote_msg(#message{flags = Flags0} = Msg, Vars) ->
|
|||
to_remote_msg(MapMsg, #{
|
||||
remote := #{
|
||||
topic := TopicToken,
|
||||
payload := PayloadToken,
|
||||
qos := QoSToken,
|
||||
retain := RetainToken
|
||||
},
|
||||
} = Remote,
|
||||
mountpoint := Mountpoint
|
||||
}) when is_map(MapMsg) ->
|
||||
Topic = replace_vars_in_str(TopicToken, MapMsg),
|
||||
Payload = process_payload(PayloadToken, MapMsg),
|
||||
Payload = process_payload(Remote, MapMsg),
|
||||
QoS = replace_simple_var(QoSToken, MapMsg),
|
||||
Retain = replace_simple_var(RetainToken, MapMsg),
|
||||
PubProps = maps:get(pub_props, MapMsg, #{}),
|
||||
|
@ -100,16 +99,15 @@ to_broker_msg(
|
|||
#{
|
||||
local := #{
|
||||
topic := TopicToken,
|
||||
payload := PayloadToken,
|
||||
qos := QoSToken,
|
||||
retain := RetainToken
|
||||
},
|
||||
} = Local,
|
||||
mountpoint := Mountpoint
|
||||
},
|
||||
Props
|
||||
) ->
|
||||
Topic = replace_vars_in_str(TopicToken, MapMsg),
|
||||
Payload = process_payload(PayloadToken, MapMsg),
|
||||
Payload = process_payload(Local, MapMsg),
|
||||
QoS = replace_simple_var(QoSToken, MapMsg),
|
||||
Retain = replace_simple_var(RetainToken, MapMsg),
|
||||
PubProps = maps:get(pub_props, MapMsg, #{}),
|
||||
|
@ -121,9 +119,12 @@ to_broker_msg(
|
|||
)
|
||||
).
|
||||
|
||||
process_payload([], Msg) ->
|
||||
process_payload(From, MapMsg) ->
|
||||
do_process_payload(maps:get(payload, From, undefined), MapMsg).
|
||||
|
||||
do_process_payload(undefined, Msg) ->
|
||||
emqx_json:encode(Msg);
|
||||
process_payload(Tks, Msg) ->
|
||||
do_process_payload(Tks, Msg) ->
|
||||
replace_vars_in_str(Tks, Msg).
|
||||
|
||||
%% Replace a string contains vars to another string in which the placeholders are replace by the
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Fix the problem that the bridge is not available when the Payload template is empty in the MQTT bridge.
|
|
@ -0,0 +1 @@
|
|||
修复 MQTT 桥接中 Payload 模板为空时桥接不可用的问题。
|
Loading…
Reference in New Issue