`
langzhe
  • 浏览: 278997 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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和GenKey
479 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,

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics