##-------------------------------------------------------------------- ## EMQX Gateway configurations ##-------------------------------------------------------------------- gateway.stomp { ## How long time the connection will be disconnected if the ## connection is established but no bytes received idle_timeout = 30s ## To control whether write statistics data into ETS table ## for dashboard to read. enable_stats = true ## When publishing or subscribing, prefix all topics with a mountpoint string. mountpoint = "" frame { max_headers = 10 max_headers_length = 1024 max_body_length = 8192 } clientinfo_override { username = "${Packet.headers.login}" password = "${Packet.headers.passcode}" } authentication: { mechanism = password_based backend = built_in_database user_id_type = clientid } listeners.tcp.default { bind = 61613 acceptors = 16 max_connections = 1024000 max_conn_rate = 1000 access_rules = [ "allow all" ] authentication: { mechanism = password_based backend = built_in_database user_id_type = username } ## TCP options ## See ${example_common_tcp_options} for more information tcp.active_n = 100 tcp.backlog = 1024 tcp.buffer = 4KB } listeners.ssl.default { bind = 61614 acceptors = 16 max_connections = 1024000 max_conn_rate = 1000 ## TCP options ## See ${example_common_tcp_options} for more information tcp.active_n = 100 tcp.backlog = 1024 tcp.buffer = 4KB ## SSL options ## See ${example_common_ssl_options} for more information ssl.versions = ["tlsv1.3", "tlsv1.2", "tlsv1.1", "tlsv1"] ssl.cacertfile = "{{ platform_etc_dir }}/certs/cacert.pem" ssl.certfile = "{{ platform_etc_dir }}/certs/cert.pem" ssl.keyfile = "{{ platform_etc_dir }}/certs/key.pem" #ssl.verify = verify_none #ssl.fail_if_no_peer_cert = false #ssl.server_name_indication = disable #ssl.secure_renegotiate = false #ssl.reuse_sessions = false #ssl.honor_cipher_order = false #ssl.handshake_timeout = 15s #ssl.depth = 10 #ssl.password = foo #ssl.dhfile = path-to-your-file } } gateway.coap { ## How long time the connection will be disconnected if the ## connection is established but no bytes received idle_timeout = 30s ## To control whether write statistics data into ETS table ## for dashboard to read. enable_stats = true ## When publishing or subscribing, prefix all topics with a mountpoint string. mountpoint = "" ## Enable or disable connection mode ## If true, you need to establish a connection before send any publish/subscribe ## requests ## ## Default: false #connection_required = false ## The Notification Message Type. ## The notification message will be delivered to the CoAP client if a new ## message received on an observed topic. ## The type of delivered coap message can be set to: ## - non: Non-confirmable ## - con: Confirmable ## - qos: Mapping from QoS type of the received message. ## QoS0 -> non, QoS1,2 -> con. ## ## Enum: non | con | qos ## Default: qos #notify_type = qos ## The *Default QoS Level* indicator for subscribe request. ## This option specifies the QoS level for the CoAP Client when establishing ## a subscription membership, if the subscribe request is not carried `qos` ## option. ## The indicator can be set to: ## - qos0, qos1, qos2: Fixed default QoS level ## - coap: Dynamic QoS level by the message type of subscribe request ## * qos0: If the subscribe request is non-confirmable ## * qos1: If the subscribe request is confirmable ## ## Enum: qos0 | qos1 | qos2 | coap ## Default: coap #subscribe_qos = coap ## The *Default QoS Level* indicator for publish request. ## This option specifies the QoS level for the CoAP Client when publishing a ## message to EMQX PUB/SUB system, if the publish request is not carried `qos` ## option. ## The indicator can be set to: ## - qos0, qos1, qos2: Fixed default QoS level ## - coap: Dynamic QoS level by the message type of publish request ## * qos0: If the publish request is non-confirmable ## * qos1: If the publish request is confirmable ## ## Enum: qos0 | qos1 | qos2 | coap #publish_qos = coap listeners.udp.default { bind = 5683 max_connections = 102400 max_conn_rate = 1000 ## UDP Options ## See ${example_common_udp_options} for more information udp.active_n = 100 udp.buffer = 16KB } listeners.dtls.default { bind = 5684 acceptors = 4 max_connections = 102400 max_conn_rate = 1000 ## UDP Options ## See ${example_common_udp_options} for more information udp.active_n = 100 udp.buffer = 16KB ## DTLS Options ## See #{example_common_dtls_options} for more information dtls.versions = ["dtlsv1.2", "dtlsv1"] dtls.keyfile = "{{ platform_etc_dir }}/certs/key.pem" dtls.certfile = "{{ platform_etc_dir }}/certs/cert.pem" dtls.cacertfile = "{{ platform_etc_dir }}/certs/cacert.pem" dtls.handshake_timeout = 15s } } gateway.mqttsn { ## How long time the connection will be disconnected if the ## connection is established but no bytes received idle_timeout = 30s ## To control whether write statistics data into ETS table ## for dashboard to read. enable_stats = true ## When publishing or subscribing, prefix all topics with a mountpoint string. mountpoint = "" ## The MQTT-SN Gateway ID in ADVERTISE message. gateway_id = 1 ## Enable broadcast this gateway to WLAN broadcast = true ## To control whether accept and process the received ## publish message with qos=-1. enable_qos3 = true ## The pre-defined topic name corresponding to the pre-defined topic ## id of N. ## Note that the pre-defined topic id of 0 is reserved. predefined = [ { id = 1 topic = "/predefined/topic/name/hello" }, { id = 2 topic = "/predefined/topic/name/nice" } ] ### ClientInfo override clientinfo_override { username = "mqtt_sn_user" password = "abc" } listeners.udp.default { bind = 1884 max_connections = 10240000 max_conn_rate = 1000 } listeners.dtls.default { bind = 1885 acceptors = 4 max_connections = 102400 max_conn_rate = 1000 ## UDP Options ## See ${example_common_udp_options} for more information udp.active_n = 100 udp.buffer = 16KB ## DTLS Options ## See #{example_common_dtls_options} for more information dtls.versions = ["dtlsv1.2", "dtlsv1"] dtls.keyfile = "{{ platform_etc_dir }}/certs/key.pem" dtls.certfile = "{{ platform_etc_dir }}/certs/cert.pem" dtls.cacertfile = "{{ platform_etc_dir }}/certs/cacert.pem" } } gateway.lwm2m { ## How long time the connection will be disconnected if the ## connection is established but no bytes received idle_timeout = 30s ## To control whether write statistics data into ETS table ## for dashboard to read. enable_stats = true ## When publishing or subscribing, prefix all topics with a mountpoint string. mountpoint = "lwm2m/${username}" xml_dir = "{{ platform_etc_dir }}/lwm2m_xml" ## ## lifetime_min = 1s lifetime_max = 86400s qmode_time_window = 22s auto_observe = false ## always | contains_object_list update_msg_publish_condition = contains_object_list translators { command { topic = "/dn/#" qos = 0 } response { topic = "/up/resp" qos = 0 } notify { topic = "/up/notify" qos = 0 } register { topic = "/up/resp" qos = 0 } update { topic = "/up/resp" qos = 0 } } listeners.udp.default { bind = 5783 } } gateway.exproto { ## How long time the connection will be disconnected if the ## connection is established but no bytes received idle_timeout = 30s ## To control whether write statistics data into ETS table ## for dashboard to read. enable_stats = true ## When publishing or subscribing, prefix all topics with a mountpoint string. mountpoint = "" ## The gRPC server to accept requests server { bind = 9100 #ssl.keyfile: #ssl.certfile: #ssl.cacertfile: } handler { address = "http://127.0.0.1:9001" #ssl.keyfile: #ssl.certfile: #ssl.cacertfile: } listeners.tcp.default { bind = 7993 acceptors = 8 max_connections = 10240 max_conn_rate = 1000 } #listeners.ssl.default: {} #listeners.udp.default: {} #listeners.dtls.default: {} }