This commit is contained in:
Feng 2016-09-09 10:38:52 +08:00
parent 5d10a1c224
commit 2c5b543440
2 changed files with 20 additions and 32 deletions

View File

@ -29,7 +29,7 @@ all() ->
{group, pubsub}, {group, pubsub},
{group, router}, {group, router},
{group, session}, {group, session},
{group, retainer}, %%{group, retainer},
{group, broker}, {group, broker},
{group, metrics}, {group, metrics},
{group, stats}, {group, stats},
@ -60,8 +60,6 @@ groups() ->
{hook, [sequence], {hook, [sequence],
[add_delete_hook, [add_delete_hook,
run_hooks]}, run_hooks]},
{retainer, [sequence],
[t_retained_messages]},
{backend, [sequence], {backend, [sequence],
[]}, []},
{http, [sequence], {http, [sequence],
@ -237,10 +235,10 @@ start_session(_) ->
Message1 = Message#mqtt_message{pktid = 1}, Message1 = Message#mqtt_message{pktid = 1},
emqttd_session:publish(SessPid, Message1), emqttd_session:publish(SessPid, Message1),
emqttd_session:pubrel(SessPid, 1), emqttd_session:pubrel(SessPid, 1),
emqttd_session:subscribe(SessPid, [{<<"topic/session">>, 2}]), emqttd_session:subscribe(SessPid, [{<<"topic/session">>, [{qos, 2}]}]),
Message2 = emqttd_message:make(<<"clientId">>, 1, <<"topic/session">>, <<"test">>), Message2 = emqttd_message:make(<<"clientId">>, 1, <<"topic/session">>, <<"test">>),
emqttd_session:publish(SessPid, Message2), emqttd_session:publish(SessPid, Message2),
emqttd_session:unsubscribe(SessPid, [<<"topic/session">>]), emqttd_session:unsubscribe(SessPid, [{<<"topic/session">>, []}]),
emqttd_mock_client:stop(ClientPid). emqttd_mock_client:stop(ClientPid).
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
@ -303,20 +301,6 @@ hook_fun3(arg1, arg2, _Acc, init) -> ok.
hook_fun4(arg1, arg2, Acc, init) -> {ok, [r2 | Acc]}. hook_fun4(arg1, arg2, Acc, init) -> {ok, [r2 | Acc]}.
hook_fun5(arg1, arg2, Acc, init) -> {stop, [r3 | Acc]}. hook_fun5(arg1, arg2, Acc, init) -> {stop, [r3 | Acc]}.
%%--------------------------------------------------------------------
%% Retainer Test
%%--------------------------------------------------------------------
t_retained_messages(_) ->
Msg = #mqtt_message{retain = true, topic = <<"a/b/c">>,
payload = <<"payload">>},
emqttd_retainer:retain(Msg),
emqttd_retainer:dispatch(<<"a/b/+">>, self()),
?assert(receive {dispatch, <<"a/b/+">>, Msg} -> true after 10 -> false end),
emqttd_retainer:retain(#mqtt_message{retain = true, topic = <<"a/b/c">>, payload = <<>>}),
[] = emqttd_retainer:read_messages(<<"a/b/c">>).
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% HTTP Request Test %% HTTP Request Test
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------

View File

@ -54,19 +54,6 @@
%% System interval of publishing broker $SYS messages %% System interval of publishing broker $SYS messages
{broker_sys_interval, 60}. {broker_sys_interval, 60}.
%%--------------------------------------------------------------------
%% Retained message
%%--------------------------------------------------------------------
%% Expired after seconds, never expired if 0
{retained_expired_after, 0}.
%% Max number of retained messages
{retained_max_message_num, 100000}.
%% Max Payload Size of retained message
{retained_max_playload_size, 65536}.
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Session %% Session
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
@ -232,6 +219,23 @@
%% Modules %% Modules
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Retainer Module
{module, retainer, [
%% disc: disc_copies, ram: ram_copies
{storage, ram},
%% Max number of retained messages
{max_message_num, 100000},
%% Max Payload Size of retained message
{max_playload_size, 65536},
%% Expired after seconds, never expired if 0
{expired_after, 0}
]}.
%% Client presence management module. Publish presence messages when %% Client presence management module. Publish presence messages when
%% client connected or disconnected. %% client connected or disconnected.
{module, presence, [{qos, 0}]}. {module, presence, [{qos, 0}]}.