diff --git a/rel/files/emqttd.config b/rel/files/emqttd.config index e350c184c..d0e4dc5de 100644 --- a/rel/files/emqttd.config +++ b/rel/files/emqttd.config @@ -39,80 +39,123 @@ {logger, {lager, info}} ]}, {emqttd, [ - {access_control, [ - %% Authetication. , Anonymous Default + %% Authentication and Authorization + {access, [ + %% Authetication. Anonymous Default {auth, [ - %% authentication with username, password + %% Authentication with username, password %{username, []}, - %% authentication with clientid + %% Authentication with clientid %{clientid, [{password, no}, {file, "etc/clients.config"}]}, - %% allow all + %% Allow all {anonymous, []} ]}, %% ACL config {acl, [ - %% User internal ACL module + %% Internal ACL module {internal, [{file, "etc/acl.config"}, {nomatch, allow}]} ]} ]}, - %% MQTT Packet - {mqtt_packet, [ - {max_clientid_len, 1024}, - {max_packet_size, 4096} + %% MQTT Protocol Options + {mqtt, [ + %% Packet + {packet, [ + %% Max ClientId Length Allowed + {max_clientid_len, 1024}, + %% Max Packet Size Allowed, 4K default + {max_packet_size, 4096} + ]}, + %% Client + {client, [ + %TODO: Network ingoing limit + %{ingoing_rate_limit, '64KB/s'} + %TODO: Reconnet control + ]}, + %% Session + {session, [ + %% Expired after 24 hours + {expires, 24}, + %% Max offline message queue + {max_queue, 100}, + %% Store Qos0? + {store_qos0, false} + ]} ]}, - %% MQTT Client - {mqtt_client, [ - %TODO: Network ingoing limit - %{ingoing_rate_limit, '64KB/s'} - ]}, - %% MQTT Session - {mqtt_session, [ - {expires, 24}, %hour - {max_queue, 1000}, - {store_qos0, false} - ]}, - %% MQTT Broker - {mqtt_broker, [ + %% Broker Options + {broker, [ %% System interval of publishing broker $SYS messages - {sys_interval, 60} + {sys_interval, 60}, + + %% Retained messages + {retained, [ + %% Max number of retained messages + {max_message_num, 100000}, + %% Max Payload Size of retained message + {max_playload_size, 4096} + ]}, + %% PubSub + {pubsub, [ + %% default should be scheduler numbers + %% {pool_size, 4} + ]}, + %% Bridge + {bridge, [ + %%TODO: bridge queue size + {max_queue_len, 1000}, + %% Ping Interval of bridge node + {ping_down_interval, 1} %seconds + ]} ]}, - %% Retain messages - {retained, [ - {max_message_num, 100000}, - {max_playload_size, 4096} - ]}, - %% PubSub - {mqtt_pubsub, [ - %% default should be scheduler numbers - %% {pool_size, 4} - ]}, - %% Bridge - {mqtt_bridge, [ - {max_queue_len, 1000}, %NO effect now - {ping_down_interval, 1} %seconds - ]}, - %% Listen Ports + %% Listeners {listeners, [ {mqtt, 1883, [ - {backlog, 512}, - %{buffer, 4096}, + %% Size of acceptor pool {acceptors, 16}, + %% Maximum number of concurrent clients {max_clients, 1024}, - {access, [{allow, all}]} + %% Socket Access Control + {access, [{allow, all}]}, + %% Socket Options + {sockopts, [ + {backlog, 1024} + %Set buffer if hight thoughtput + %{recbuf, 4096}, + %{sndbuf, 4096} + %{buffer, 4096}, + ]} ]}, {mqtts, 8883, [ - {backlog, 128}, + %% Size of acceptor pool {acceptors, 4}, + %% Maximum number of concurrent clients {max_clients, 1024}, + %% Socket Access Control {access, [{allow, all}]}, - %{cacertfile, "etc/ssl/cacert.pem"}, + %% SSL certificate and key files {ssl, [{certfile, "etc/ssl.crt"}, - {keyfile, "etc/ssl.key"}]} + {keyfile, "etc/ssl.key"}]}, + %% Socket Options + {sockopts, [ + {backlog, 1024} + %{buffer, 4096}, + ]} ]}, + %% HTTP and WebSocket Listener {http, 8083, [ + %% Size of acceptor pool {acceptors, 4}, + %% Maximum number of concurrent clients {max_clients, 512}, - {access, [{allow, "127.0.0.1"}]} + %% Socket Access Control + {access, [ + {allow, "127.0.0.1"}, + {deny, all} + ]}, + %% Socket Options + {sockopts, [ + {backlog, 1024} + %{buffer, 4096}, + ]} ]} ]} ]}