[ejabberd w / smack]:如何在pubsub集合节点内成功创建叶节点

时间:2015-11-29 03:45:47

标签: xmpp ejabberd smack

注册用户使用smack库在我的ejabberd服务器上创建了一个集合节点,并按照以下配置:

PubSubManager psMgr = new PubSubManager(conn, "pubsub.mydomain");
ConfigureForm CForm = new ConfigureForm(DataForm.Type.submit);
CForm.setAccessModel(AccessModel.open);    //anyone can access
CForm.setDeliverPayloads(true);            //allow payloads with notif
CForm.setNotifyDelete(true);               //notify subscribers when nodeis deleted
CForm.setPersistentItems(true);            //save published items in storage @ server
CForm.setPresenceBasedDelivery(false);     //notify subscribers even when offline
CForm.setPublishModel(PublishModel.open);  //only publishers can post to this node
CForm.setNodeType(NodeType.collection);
CForm.setChildrenAssociationPolicy(ChildrenAssociationPolicy.all);
CForm.setChildrenMax(65536);
psMgr.createNode("/collection_node", lCForm);

....这个集合节点创建得很好。请注意,子协会政策是全部'

现在,如果在同一服务器上注册的其他用户尝试在此集合节点内创建叶节点,则服务器将返回“禁止” - auth'错误。

ConfigureForm form = new ConfigureForm(DataForm.Type.submit);
form.setNodeType(NodeType.leaf);
form.setCollection("/collection_node");
psMgr.createNode("/collection_node/leaf_node", form);

我在我的ejabberd服务器中为pubsub模块启用了这些插件["collections", "dag", "flat", "hometree", "pep"].

任何人都可以建议为什么即使在收集节点授予所有'全部'之后叶节点创建也会失败?将子节点与自身关联起来。

Smack版本是:4.1.2

ejabberd版本:(出于一些奇怪的原因显示):0.0。 [但是,服务器是在2015年11月的(https://github.com/processone/ejabberd/archive/master.zip)上提供的源代码中安装的,同时安装了erlang(OTP 17.1)。所以应该是最新的,除非我在安装过程中搞砸了。]

0 个答案:

没有答案