fix duplicated subscribers with same topic
This commit is contained in:
parent
6d2b31911a
commit
f0f1456168
|
@ -379,9 +379,18 @@ code_change(_OldVsn, State, _Extra) ->
|
||||||
%% Internal functions
|
%% Internal functions
|
||||||
%%------------------------------------------------------------------------------
|
%%------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
insert_subscriber(Group, Topic, Subscriber) ->
|
||||||
|
Subscribers = subscribers(Topic),
|
||||||
|
case lists:member(Subscriber, Subscribers) of
|
||||||
|
false ->
|
||||||
|
ets:insert(?SUBSCRIBER, {Topic, shared(Group, Subscriber)});
|
||||||
|
_ ->
|
||||||
|
ok
|
||||||
|
end.
|
||||||
|
|
||||||
do_subscribe(Group, Topic, Subscriber, SubOpts) ->
|
do_subscribe(Group, Topic, Subscriber, SubOpts) ->
|
||||||
ets:insert(?SUBSCRIPTION, {Subscriber, shared(Group, Topic)}),
|
ets:insert(?SUBSCRIPTION, {Subscriber, shared(Group, Topic)}),
|
||||||
ets:insert(?SUBSCRIBER, {Topic, shared(Group, Subscriber)}),
|
insert_subscriber(Group, Topic, Subscriber),
|
||||||
ets:insert(?SUBOPTION, {{Topic, Subscriber}, SubOpts}).
|
ets:insert(?SUBOPTION, {{Topic, Subscriber}, SubOpts}).
|
||||||
|
|
||||||
do_unsubscribe(Group, Topic, Subscriber) ->
|
do_unsubscribe(Group, Topic, Subscriber) ->
|
||||||
|
|
Loading…
Reference in New Issue