Feng Lee 11 лет назад
Родитель
Сommit
880bbfd5fe
1 измененных файлов с 90 добавлено и 47 удалено
  1. 90 47
      rel/files/emqttd.config

+ 90 - 47
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 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 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 Broker
-    {mqtt_broker, [
+    %% Broker Options
+    {broker, [
         %% System interval of publishing broker $SYS messages
-        {sys_interval, 60}
-    ]},
-    %% 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
+        {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
+        ]}
     ]},
-    %% 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},
+            ]}
         ]}
     ]}
  ]}