add publish/1 api

This commit is contained in:
erylee 2013-01-03 21:03:00 +08:00
parent 2c8bb114f9
commit 8b85ce4278
2 changed files with 6 additions and 1 deletions

View File

@ -418,7 +418,8 @@ validate_frame(?UNSUBSCRIBE, Frame) ->
validate_frame(?SUBSCRIBE, Frame);
validate_frame(?SUBSCRIBE, #mqtt_frame{variable = #mqtt_frame_subscribe{topic_table = Topics}}) ->
ErrTopics = [Topic || Topic <- Topics, not emqtt_topic:validate({subscribe, Topic})],
ErrTopics = [Topic || #mqtt_topic{name=Topic} <- Topics,
not emqtt_topic:validate({subscribe, Topic})],
case ErrTopics of
[] -> ok;
_ -> ?ERROR("error topics: ~p", [ErrTopics]), {error, badtopic}

View File

@ -24,6 +24,7 @@
-export([topics/0,
subscribe/2,
unsubscribe/2,
publish/1,
publish/2,
route/2,
match/1,
@ -52,6 +53,9 @@ subscribe({Topic, Qos}, Client) when is_pid(Client) ->
unsubscribe(Topic, Client) when is_list(Topic) and is_pid(Client) ->
gen_server2:cast(?MODULE, {unsubscribe, Topic, Client}).
publish(Msg=#mqtt_msg{topic=Topic}) ->
publish(Topic, Msg).
%publish to cluster node.
publish(Topic, Msg) when is_list(Topic) and is_record(Msg, mqtt_msg) ->
lists:foreach(fun(#topic{name=Name, node=Node}) ->