Просмотр исходного кода

Merge pull request #6822 from HJianBo/more-fields-for-webhook

Ensure connected_at field for connect/connack/disconnected event
JianBo He 4 лет назад
Родитель
Сommit
b19441df70

+ 1 - 1
apps/emqx_web_hook/src/emqx_web_hook.app.src

@@ -1,6 +1,6 @@
 {application, emqx_web_hook,
  [{description, "EMQ X WebHook Plugin"},
-  {vsn, "4.3.8"}, % strict semver, bump manually!
+  {vsn, "4.3.9"}, % strict semver, bump manually!
   {modules, []},
   {registered, [emqx_web_hook_sup]},
   {applications, [kernel,stdlib,ehttpc]},

+ 4 - 2
apps/emqx_web_hook/src/emqx_web_hook.appup.src

@@ -5,9 +5,10 @@
      {load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
      {load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
      {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
-   {<<"4\\.3\\.[3-7]">>,
+   {<<"4\\.3\\.[3-8]">>,
     [{apply,{application,stop,[emqx_web_hook]}},
      {load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
+     {load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
      {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
    {<<".*">>,[]}],
   [{<<"4\\.3\\.[0-2]">>,
@@ -15,8 +16,9 @@
      {load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
      {load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
      {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
-   {<<"4\\.3\\.[3-7]">>,
+   {<<"4\\.3\\.[3-8]">>,
     [{apply,{application,stop,[emqx_web_hook]}},
      {load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
+     {load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
      {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
    {<<".*">>,[]}]}.

+ 3 - 0
apps/emqx_web_hook/src/emqx_web_hook.erl

@@ -93,6 +93,7 @@ on_client_connect(ConnInfo = #{clientid := ClientId, username := Username, peern
               , ipaddress => iolist_to_binary(ntoa(Peerhost))
               , keepalive => maps:get(keepalive, ConnInfo)
               , proto_ver => maps:get(proto_ver, ConnInfo)
+              , connected_at => maps:get(connected_at, ConnInfo)
               },
     send_http_request(ClientId, Params).
 
@@ -109,6 +110,7 @@ on_client_connack(ConnInfo = #{clientid := ClientId, username := Username, peern
               , ipaddress => iolist_to_binary(ntoa(Peerhost))
               , keepalive => maps:get(keepalive, ConnInfo)
               , proto_ver => maps:get(proto_ver, ConnInfo)
+              , connected_at => maps:get(connected_at, ConnInfo)
               , conn_ack => Rc
               },
     send_http_request(ClientId, Params).
@@ -143,6 +145,7 @@ on_client_disconnected(#{clientid := ClientId, username := Username}, Reason, Co
               , clientid => ClientId
               , username => maybe(Username)
               , reason => stringfy(maybe(Reason))
+              , connected_at => maps:get(connected_at, ConnInfo)
               , disconnected_at => maps:get(disconnected_at, ConnInfo, erlang:system_time(millisecond))
               },
     send_http_request(ClientId, Params).

+ 4 - 1
apps/emqx_web_hook/test/props/prop_webhook_hooks.erl

@@ -52,7 +52,8 @@ prop_client_connect() ->
                       username => maybe(maps:get(username, ConnInfo)),
                       ipaddress => peer2addr(maps:get(peername, ConnInfo)),
                       keepalive => maps:get(keepalive, ConnInfo),
-                      proto_ver => maps:get(proto_ver, ConnInfo)
+                      proto_ver => maps:get(proto_ver, ConnInfo),
+                      connected_at => maps:get(connected_at, ConnInfo)
                      }),
            true
        end).
@@ -71,6 +72,7 @@ prop_client_connack() ->
                        ipaddress => peer2addr(maps:get(peername, ConnInfo)),
                        keepalive => maps:get(keepalive, ConnInfo),
                        proto_ver => maps:get(proto_ver, ConnInfo),
+                       connected_at => maps:get(connected_at, ConnInfo),
                        conn_ack => Rc
                        }),
             true
@@ -106,6 +108,7 @@ prop_client_disconnected() ->
                        node => stringfy(node()),
                        clientid => maps:get(clientid, ClientInfo),
                        username => maybe(maps:get(username, ClientInfo)),
+                       connected_at => maps:get(connected_at, ConnInfo),
                        disconnected_at => maps:get(disconnected_at, ConnInfo),
                        reason => stringfy(Reason)
                       }),

+ 4 - 3
lib-ce/emqx_modules/src/emqx_mod_presence.erl

@@ -57,8 +57,7 @@ on_client_connected(ClientInfo = #{clientid := ClientId}, ConnInfo, Env) ->
                   connack         => 0, %% XXX: connack will be removed in 5.0
                   keepalive       => maps:get(keepalive, ConnInfo, 0),
                   clean_start     => maps:get(clean_start, ConnInfo, true),
-                  expiry_interval => maps:get(expiry_interval, ConnInfo, 0),
-                  connected_at    => maps:get(connected_at, ConnInfo)
+                  expiry_interval => maps:get(expiry_interval, ConnInfo, 0)
                  },
     case emqx_json:safe_encode(NPresence) of
         {ok, Payload} ->
@@ -95,7 +94,8 @@ common_infos(
                   sockport := SockPort
                  },
   _ConnInfo = #{proto_name := ProtoName,
-                proto_ver := ProtoVer
+                proto_ver := ProtoVer,
+                connected_at := ConnectedAt
                }) ->
     #{clientid => ClientId,
       username => Username,
@@ -103,6 +103,7 @@ common_infos(
       sockport => SockPort,
       proto_name => ProtoName,
       proto_ver => ProtoVer,
+      connected_at => ConnectedAt,
       ts => erlang:system_time(millisecond)
      }.
 

+ 1 - 1
lib-ce/emqx_modules/src/emqx_modules.app.src

@@ -1,6 +1,6 @@
 {application, emqx_modules,
  [{description, "EMQ X Module Management"},
-  {vsn, "4.3.3"},
+  {vsn, "4.3.4"},
   {modules, []},
   {applications, [kernel,stdlib]},
   {mod, {emqx_modules_app, []}},

+ 2 - 2
lib-ce/emqx_modules/src/emqx_modules.appup.src

@@ -1,7 +1,7 @@
 %% -*-: erlang -*-
 {VSN,
   [
-    {"4.3.2", [
+    {<<"4\\.3\\.[2-3]">>, [
       {load_module, emqx_mod_presence, brutal_purge, soft_purge, []}
     ]},
     {"4.3.1", [
@@ -16,7 +16,7 @@
     {<<".*">>, []}
   ],
   [
-    {"4.3.2", [
+    {<<"4\\.3\\.[2-3]">>, [
       {load_module, emqx_mod_presence, brutal_purge, soft_purge, []}
     ]},
     {"4.3.1", [