ejabberd 三个没有弄明白的疑问
?
?
?
1>
1794 ? ? ? ? ? ? case transaction(CreateNode, transaction) of
1795 ? ? ? ? ? ? ? ? {result, {NodeId, SubsByDepth, {Result, broadcast}}} ->
1796 ? ? ? ? ? ? ? ? ? ? broadcast_created_node(Host, Node, NodeId, Type, NodeOptions, SubsByDepth), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
1797 ? ? ? ? ? ? ? ? ? ? case Result of
1798 ? ? ? ? ? ? ? ? ? ? ? ? default -> {result, Reply};
1799 ? ? ? ? ? ? ? ? ? ? ? ? _ -> {result, Result}
1800 ? ? ? ? ? ? ? ? ? ? end;
1801 ? ? ? ? ? ? ? ? {result, {_NodeId, _SubsByDepth, default}} ->
1802 ? ? ? ? ? ? ? ? ? ? {result, Reply};
原来这里的广播是针对 集合节点的。例如:树节点,当在创建子节点时会产生调用此broadcast_created_node不明白以下两处的含义,待解决。。。2>?create_node(Host, ServerHost, string_to_node("/home"), service_jid(Host), "hometree"),??create_node(Host, ServerHost, string_to_node("/home"), service_jid(Host), "hometree"),?
3>
今天又添加了个疑问, 没搞明白 下面为什么要执行两个presence
?
?742 presence_probe(#jid{luser = User, lserver = Server, lresource = Resource} = JID, JID, Pid) ->
?743 ? ? %%?DEBUG("presence probe self ~s@~s/~s ?~s@~s/~s",[User,Server,Resource,element(2,JID),element(3,JID),element(4,JID)]),
?744 ? ? presence(Server, {presence, JID, Pid}), ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?745 ? ? presence(Server, {presence, User, Server, [Resource], JID});
4>今天又多了个疑问下面代码为什么要 比较SubKey和GenKey479 publish_item(NodeIdx, Publisher, PublishModel, MaxItems, ItemId, Payload) ->?480 ? ? ?DEBUG("In ~p:publish_item ~p ItemId=~p~n", [?MODULE, ?LINE, ItemId]),?481 ? ? SubKey = jlib:jid_tolower(Publisher),?482 ? ? GenKey = jlib:jid_remove_resource(SubKey),?483 ? ? ?DEBUG("In ~p:publish_item ~p??484 ? ? ? ? ? ? ~nPublisher=~p~n SubKey=~p~n GenKey=~p~n",?485 ? ? ? ? ? ? [?MODULE, ?LINE, Publisher, SubKey, GenKey]),?486 ? ? GenState = get_state(NodeIdx, GenKey),?487 ? ? SubState = case SubKey of?488 ? ? ? ? GenKey -> GenState;?489 ? ? ? ? _ -> get_state(NodeIdx, SubKey) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??490 ? ? ? ? end,