Vulture/VNode/_software_lib/nanomq-0.22.10/config/nanomq_bridge.conf

400 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# #====================================================================
# # MQTT Broker Bridge
# #====================================================================
bridges.mqtt.emqx1 {
# # Bridge address: host:port .
# #
# # Value: String
# # Example: mqtt-tcp://127.0.0.1:1883
# # tls+mqtt-tcp://127.0.0.1:8883
# # mqtt-quic://54.75.171.11:14567
server = "mqtt-tcp://127.0.0.1:1883"
# # Protocol version of the bridge.
# #
# # Value: Enum
# # - 5: mqttv5
# # - 4: mqttv311
# # - 3: mqttv31
proto_ver = 4
# # The ClientId of a remote bridge.
# # Default random string.
# #
# # Value: String
# clientid="bridge_client"
# # Ping: interval of a downward bridge.
# #
# # Value: Duration
# # Default: 10 seconds
keepalive = 60s
# # The maximum backoff timeout.
# # Reconnect after no more than backoff_max when bridge connection lost.
# #
# # Value: Duration
# # Default: 60s
backoff_max = 60s
# # The Clean start flag of a remote bridge.
# #
# # Value: boolean
# # Default: false
# #
# # NOTE: Some IoT platforms require clean_start
# # must be set to 'true'
clean_start = false
# # The username for a remote bridge.
# #
# # Value: String
username = username
# # The password for a remote bridge.
# #
# # Value: String
password = passwd
# # Properties for MQTT V5
conn_properties = {
# # Maximum Packet Size
# #
# # If the Maximum Packet Size is not present, no limit on the packet size is imposed beyond
# # the limitations in the protocol as a result of the remaining length encoding and the protocol header sizes.
# # Value: 1 ~ 4294967295
maximum_packet_size = 1024
# # Receive Maximum
# #
# # The Client uses this value to limit the number of QoS 1 and QoS 2 publications that it is willing to process concurrently.
# # There is no mechanism to limit the QoS 0 publications that the Server might try to send.
# # The value of Receive Maximum applies only to the current Network Connection.
# # If the Receive Maximum value is absent then its value defaults to 65,535.
# #
# # Value: 1 ~ 65535
receive_maximum = 65535
# # Topic Alias Maximum
# #
# # If the Topic Alias Maximum property is absent, the default value is 0.
# # This value indicates the highest value that the Client will accept as a Topic Alias sent by the Server.
# # The Client uses this value to limit the number of Topic Aliases that it is willing to hold on this Connection.
# # Default: 0
# # Value: 0 ~ 65535
topic_alias_maximum = 0
# # Request Problem Information
# #
# # If the Request Problem Information is absent, the value of 1 is used.
# # The Client uses this value to indicate whether the Reason String or User Properties are sent in the case of failures.
# # If the value of Request Problem Information is 0, the Server MAY return a Reason String or User Properties on a CONNACK or DISCONNECT packet,
# # but MUST NOT send a Reason String or User Properties on any packet other than PUBLISH, CONNACK, or DISCONNECT.
# # If the value is 0 and the Client receives a Reason String or User Properties in a packet other than PUBLISH, CONNACK, or DISCONNECT,
# # it uses a DISCONNECT packet with Reason Code 0x82 (Protocol Error) as described in section 4.13 Handling errors.
# # If this value is 1, the Server MAY return a Reason String or User Properties on any packet where it is allowed.
# #
# # Default: 1
# # Value: 0 | 1
request_problem_infomation = 1
# # Request Response Information
# #
# # If the Request Response Information is absent, the value of 0 is used.
# # The Client uses this value to request the Server to return Response Information in the CONNACK.
# # A value of 0 indicates that the Server MUST NOT return Response Information.
# # If the value is 1 the Server MAY return Response Information in the CONNACK packet.
# #
# # Default: 0
# # Value: 0 | 1
request_response_infomation = 0
# # Session Expiry Interval
# #
# # If the Session Expiry Interval is absent the value 0 is used.
# # If it is set to 0, or is absent, the Session ends when the Network Connection is closed.
# # If the Session Expiry Interval is 4294967295 (UINT_MAX), the Session does not expire.
# #
# # Value: 0 ~ 4294967295
session_expiry_interval = 0
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# # Value: Map[key(String) - value(String)]
user_property = {
key1 = value1
key2 = value2
}
}
will {
# # Will topic
topic = "will_topic"
# # Will QoS
qos = 1
# # Will paylad retain flag
retain = false
# # Will payload
payload = "will_message"
# # Will properties
properties = {
# # Payload Format Indicator
# #
# # 0 (0x00) Byte Indicates that the Will Message is unspecified bytes,
# # which is equivalent to not sending a Payload Format Indicator.
# #
# # 1 (0x01) Byte Indicates that the Will Message is UTF-8 Encoded Character Data.
# #
# # Default: 0
# # Value: 0 | 1
payload_format_indicator = 0
# # Message Expiry Interval
# #
# # If present, the Four Byte value is the lifetime of the Will Message in seconds
# # and is sent as the Publication Expiry Interval when the Server publishes the Will Message.
# #
# # If absent, no Message Expiry Interval is sent when the Server publishes the Will Message.
message_expiry_interval = 0
# # Content Type
# # The value of the Content Type is defined by the sending and receiving application.
content_type = ""
# # Response Topic
# # The presence of a Response Topic identifies the Will Message as a Request.
response_topic = ""
# # Correlation Data
# # The Correlation Data is used by the sender of the Request Message to identify which request
# # the Response Message is for when it is received.
correlation_data = ""
# # Will Delay Interval
# #
# # If the Will Delay Interval is absent, the default value is 0 and there is no delay
# # before the Will Message is published.
# #
# # The Server delays publishing the Clients Will Message until the Will Delay Interval
# # has passed or the Session ends, whichever happens first.
# # If a new Network Connection to this Session is made before the Will Delay Interval has passed, the Server MUST NOT send the Will Message
will_delay_interval = 0
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# # Value: Map[key(String) - value(String)]
user_property = {
key1 = value1
key2 = value2
}
}
}
# # Ssl config ##
# # Ssl config is invalid when working in MQTT over QUIC mode ##
# ssl {
# # # Ssl key password
# # # String containing the user's password. Only used if the private keyfile
# # # is password-protected.
# # #
# # # Value: String
# # # key_password = "yourpass"
# # # Ssl keyfile
# # # Path of the file containing the client's private key.
# # #
# # # Value: File
# keyfile = "../etc/certs/key.pem"
# # # Ssl cert file
# # # Path of the file containing the client certificate.
# # #
# # # Value: File
# certfile = "../etc/certs/cert.pem"
# # # Ssl ca cert file
# # # Path of the file containing the server's root CA certificate.
# # #
# # # This certificate is used to identify the AWS IoT server and is publicly
# # # available.
# # #
# # # Value: File
# cacertfile = "../etc/certs/cacert.pem"
# }
# # Topics that need to be forward to IoTHUB
# #
# # Value: String
# # Example: topic1/#,topic2/#
forwards = [
{
# # Need to forward to remote broker topics
# #
# # Value: String
remote_topic = "fwd/topic1"
# # topic reflection with remote_topic
# #
# # Value: String
local_topic = "topic1"
}
{
remote_topic = "fwd/topic2"
local_topic = "topic2"
}
]
# #--------------------------------------------------------------------
# # The following config params only effective when set QUIC as the
# # transport layer of bridging connection (mqtt-quic://{host}:{port})!
# #
# # Ping: interval of a sending keepalive packet via QUIC transport.
# #
# # Value: Duration
# # Default: 120 seconds
quic_keepalive = 120s
# # Idle Timeout: How long a connection can go idle before it is gracefully shut down.
# # 0 to disable timeout, which may lost disconnect event msg.
# # Value: Duration
# # Default: 120 seconds
quic_idle_timeout = 120s
# # Disconnect Timeout: How long to wait for an ACK before declaring
# # a path dead and disconnecting, This affects stream living time.
# # Value: Duration
# # Default: 20 seconds
quic_discon_timeout = 20s
# # Handshake Timeout: the Max time NanoMQ waits for establishing QUIC connection
# # How long a handshake can idle before it is discarded
# # Value: Duration
# # Default: 60 seconds
quic_handshake_timeout = 60s
# # Send Idle Timeout: Reset congestion control after being idle `SendIdleTimeout`
# # Value: Duration
# # Default: 60 seconds
quic_send_idle_timeout = 2s
# # Initial RTT: Initial RTT estimate. (ms)
# # RTT: round trip time
# # Default: 800ms
quic_initial_rtt_ms = 800ms
# # Max Ack Delay: How long to wait after receiving data before sending an ACK.
# # Value: Duration
# # Default: 100ms
quic_max_ack_delay_ms = 100ms
# # multi-stream mode: enable or disable the multi-stream bridging mode
# # Warning: This is a feature WIP. Do not enable it!
# # Value: True/False
# # Default: False
quic_multi_stream = false
# # qos_priority: send QoS 1/2 msg in high prority
# # QoS 0 messages remain as same
# # Value: true/false
# # Default: true
quic_qos_priority = true
# # 0RTT: enable or diable 0RTT, 0RTT is a feature of QUIC to re-establish
# # connection quickly.
# # Value: true/false
# # Default: true
quic_0rtt = true
subscription = [
{
# # The topic filter of which subscribe to remote broker
# # This must present to enable the subscription of bridging
# #
# # Value: String
remote_topic = "cmd/topic3"
# # This is for Topic reflection, if you want the vanila way:
# # Leave `local_topic=""` to preserve the original topic in msg
# # Value: String
local_topic = "topic3"
# # Need to subscribe to remote topics QoS.
# # Please set QoS for each subscription topic
# # otherwise topic is invalid, NanoMQ won't sub to any topic
# # Value: Number
qos = 1
}
{
remote_topic = "cmd/topic4"
local_topic = "topic4"
qos = 2
}
]
# # Properties of subscribe for MQTT V5
sub_properties {
# # Subscription Identifier
# #
# # The Subscription Identifier can have the value of 1 to 268,435,455.
# # It is a Protocol Error if the Subscription Identifier has a value of 0.
# # It is a Protocol Error to include the Subscription Identifier more than once.
# # The Subscription Identifier is associated with any subscription created or modified as the result of this SUBSCRIBE packet.
# # If there is a Subscription Identifier, it is stored with the subscription.
# # If this property is not specified, then the absence of a Subscription Identifier is stored with the subscription.
# #
# # Value: 1 ~ 268,435,455
identifier = 1
# # User Property
# #
# # The User Property is allowed to appear multiple times to represent multiple name, value pairs.
# # The same name is allowed to appear more than once.
# #
# # Value: Map[key(String) - value(String)]
user_property = {
key1 = value1
key2 = value2
}
}
# # Hybrid bridging: enable or disable the hybrid bridging mode
# # Value: True/False
# # Default: False
hybrid_bridging = false
# # Hybrid servers
# # When hybrid mode is enabled and the connection to server is
# # disconnected. Bridge will switch to hybrid_servers in roundrobin.
# # Value: Array
# # Default: []
hybrid_servers = ["mqtt-quic://127.1:14567", "mqtt-tcp://127.1:1883"]
# # max_parallel_processes
# # Handle a specified maximum number of outstanding requests
# #
# # Value: 1-infinity
max_parallel_processes = 2
# # max send queue length
# # Handle a specified maximum number of message send queue length
# #
# # Value: 1-infinity
max_send_queue_len = 32
# # max receive queue length
# # Handle a specified maximum number of message receive queue length
# #
# # Value: 1-infinity
max_recv_queue_len = 128
}
bridges.mqtt.cache {
# # Max message limitation for caching
# # ( 0 means ineffective )
# # Value: 1-infinity
disk_cache_size = 102400
# # Mounted file path
# #
# # Value: path
# mounted_file_path="/tmp/"
# # The threshold of flushing messages to flash.
# #
# # Value: 1-infinity
flush_mem_threshold = 100
# # Resend interval (ms)
# # The interval for resending the messages after failure recovered. (not related to trigger)
# #
# # Value: 1-infinity
resend_interval = 5000
}