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,
分享到:
相关推荐
IM(ejabberd)服务器的客户端android开发的代码详解,该代码例子包含单聊、群聊、发送文字、发送及接收文件等功能。
IM服务器Ejabberd安装教程使用的测试客户端,可安装用来测试服务器是否成功安装,测试即时聊天、账号上下线测试等
Ejabberd 服务器 asmck Android端使用的jar包 spack pc端客户端
ejabberd安装包,很好的工具!适合安装!一定会很好用的!
ejabberd windows installer
ejabberd是基于Jabber/XMPP协议的即时通讯服务器,由GPLv2授权(免费和开放源码),采用Erlang/OTP开发。它的特点是,跨平台,容错,集群和模块化。
ejabberd安装配置[归纳].pdf
windows环境下的ejabberd。。。点击即可安装
此文件是ios 用xmpp开发即时通讯的服务器
Android使用smack连接ejabberd服务器,完成了连接、登录、创建新用户、收发消息的功能
学习strophe.js,ejabberd 群聊在项目中实现 demo源码分享
NULL 博文链接:https://langzhe.iteye.com/blog/965591
Dockerfile构建一个ejabberd容器映像。 从版本16.12开始,ejabberd根据源树中包含的该容器的工作情况拥有自己的docker容器。 在此博客文章中查看更多内容。 我们可以期望将来对此进行更多的工作。 版本 当前版本:...
docker-ejabberd:ejabberd Docker映像集
ejabberd_rest_client
ejabberd安装配置.docx
Ejabberd-Packet-Interceptor 拦截和更改消息的 Ejabberd 模块这个模块接受一个 Ejabberd 消息包,改变消息体并发送它。 该模块挂钩 packet_filter 并检查每个数据包是否有消息正文。 如果有消息正文,它会对其进行 ...
ejabberd-XMPP和Web聊天 将与结合在一起的即时消息服务器,以创建支持强加密并与任何Web浏览器或专用XMPP客户端(例如,Pidgin)一起使用的实时聊天服务器。 ejabberd是功能强大的XMPP服务器,它支持群集,实时升级...
ejabberd - 高性能企业即时消息服务器快速入门指南要求要编译 ejabberd,您需要: GNU 制造海湾合作委员会Libexpat 1.95 或更高版本利比亚ml 0.1.4 或更高Erlang/OTP R15B 或更高版本。 OpenSSL 0.9.8 或更高版本,...
本指南应涵盖从头开始创建 ejabberd 模块,并且没有或几乎没有编写 erlang 的经验。 但是需要有软件开发方面的经验。先决条件ejabberd 安装在你的本地机器上二郎安装安装了 gitejabberd 模块的类型验证身份验证模块...