ignore duplicated subscriptions
This commit is contained in:
parent
c8a121ff08
commit
ea70389cf7
|
@ -282,8 +282,11 @@ prioritise_info(Msg, _Len, _State) ->
|
|||
handle_call({subscribe, TopicTable0}, _From, Session = #session{client_id = ClientId,
|
||||
subscriptions = Subscriptions}) ->
|
||||
|
||||
case TopicTable0 -- Subscriptions of
|
||||
[] ->
|
||||
{reply, {ok, [Qos || {_, Qos} <- TopicTable0]}, Session};
|
||||
_ ->
|
||||
TopicTable = emqttd_broker:foldl_hooks('client.subscribe', [ClientId], TopicTable0),
|
||||
|
||||
%% subscribe first and don't care if the subscriptions have been existed
|
||||
{ok, GrantedQos} = emqttd_pubsub:subscribe(TopicTable),
|
||||
|
||||
|
@ -311,7 +314,8 @@ handle_call({subscribe, TopicTable0}, _From, Session = #session{client_id = Clie
|
|||
[{Topic, Qos} | Acc]
|
||||
end
|
||||
end, Subscriptions, TopicTable),
|
||||
{reply, {ok, GrantedQos}, Session#session{subscriptions = Subscriptions1}};
|
||||
{reply, {ok, GrantedQos}, Session#session{subscriptions = Subscriptions1}}
|
||||
end;
|
||||
|
||||
handle_call({unsubscribe, Topics0}, _From, Session = #session{client_id = ClientId,
|
||||
subscriptions = Subscriptions}) ->
|
||||
|
|
Loading…
Reference in New Issue