修改privacy 利用推送 方式 更新privacy list userlist
updated_list(_, #userlist{name = OldName} = Old, #userlist{name = NewName} = New) ->
if
OldName == NewName ->
New;
true ->
Old
end.
上传几个附近 备用
ejabberd中mod_privacy_odbc.erl实现没有完全遵循xmpp协议
其中,设置默认和删除privacy list时没有判断当前privacy list 是否有资源在使用。仅仅在删除时候判断了privacy list是否是默认的。
如果是active的话,此状态存在用户资源当前进程中。其他资源进程不能直接读取,所以无法判断目前到底有多少个进程正在使用privacy list.
目前想到的解决方法:
1、建立一个内存表,每个进程与它的状态都写在里面。用的话查询一下就可以。
2、进程之间相互发送消息。”双方“提供相应的机制。
方法1存在的问题,如果一个用户邦定20个资源,当前有10000个用户(假设都在线),这时内存表里面存在的数据会是10*10000=200000。 还必须提供的相应的更新同步操作。用户数量直接影响效率。
方法2存在的问题 如果一个用户邦定20个资源,当前有10000个用户(假设都在线)。20个用户资源进程,其中一个更新,就必须与其他19个进行交互。与用户数量无关。
谁有其他的好方法?
分享到:
相关推荐
点击即可安装。。。一路next下去
更改mod_http_offline.erl文件中的'[your-url-here]'字符串。 为了编译这个,我在我的主目录下载了代码并运行: erlc -I /lib/ejabberd/include/ -pa ~/ejabberd/deps/lager/ebin/ mod_http_offline.erl 将 ....
市面上有许多开源和商业的XMPP服务器实现,例如ejabberd、Prosody和Openfire。这些服务器提供了稳定、可扩展的基础架构,可处理大规模用户群。相应的,也有许多XMPP客户端应用,如Gajim、Pidgin和 Conversations,...
ejabberd是一个高度可扩展和可靠的XMPP服务器,它支持多种协议,广泛用于即时通讯和实时协作应用。ejabberd_rest_client是与ejabberd服务器交互的一个客户端库,它利用ejabberd的API接口,通过RESTful方式来操作...
Smack是一款开源的Java库,专门用于实现XMPP(Extensible Messaging and Presence Protocol)协议,这是一种基于XML的即时通讯协议,广泛应用于聊天、文件传输、在线状态管理等多个领域。3.2.2是Smack的一个特定版本...
erlc -I $ {EJABBERD_SRC} mod_stanza_ack.erl {EJABBERD_SRC}必须替换为ejabberd源文件的实际位置,例如/ home / foobar / ejabberd / src。 可以在找到此文件夹的示例。 使用以下命令将已编译的.beam文件移动到...
iOS即时通讯系统在近年来变得越来越流行,而XMPP(Extensible Messaging and Presence Protocol)作为一款开放标准的协议,被广泛应用于此类系统中。本文件主要关注的是如何在iOS平台上使用XMPP与ejabberd服务器进行...
ejabberd是一款开源的XMPP服务器,广泛应用于实时通讯系统,如即时消息、在线状态显示、多用户聊天室等功能的实现。它基于Erlang编程语言,这使得ejabberd具有高度可扩展性和高容错性。 ejabberd-15.07-osx-...
在Java中实现这样的系统,开发者通常会利用XMPP(Extensible Messaging and Presence Protocol)框架,它是Jabber协议的一种扩展。XMPP使用XML流来传输数据,提供了强大的扩展性,支持多种功能,如聊天、文件传输、...
在.NET框架下,开发者可以利用C#语言来实现XMPP协议,以创建实时、双向的通信应用。这篇文档将深入探讨XMPP在C#环境中的应用,以及如何利用开源库来构建XMPP客户端和服务端。 首先,让我们理解XMPP的基本概念。XMPP...
在XMPP中,群聊通常通过多用户聊天(MUC,Multi-User Chat)服务实现。MUC允许多个用户在一个聊天室中进行实时交流。在ejabberd服务器上,你可以创建并管理这些聊天室。 接下来,我们需要关注以下关键步骤: 1. **...
mod_gcm 现在! 很好地传播项目! mod_gcm是一个ejabberd模块,可使用Google Cloud Messaging API将离线消息作为PUSH通知发送给Android。 考虑使用实现并与许多PUSH服务一起使用的 。 该模块与无关。 该模块的...
埃雅伯德最后一次看到v0.1 该模块实现了ejabberd中whatsapp的最新功能,主要对移动聊天客户端很有帮助。 传统的XMPP方法依靠订阅状态节,因为移动网络的不可靠性是不可行的。 客户端在终止聊天活动时发送iq发布请求...
5. **实体与资源**:在XMPP中,每个用户是一个实体,实体可以有多个同时在线的资源,如桌面、手机等。通过资源标识,服务器可以区分同一实体的不同设备。 6. **消息与状态**:XMPP的消息传递是基于推送的,可以实现...
- **服务配置**:配置ejabberd服务,包括监听的端口、认证方式、模块启用等,这些通常在ejabberd.yml配置文件中进行。 - **安全管理**:设置管理员账号和密码,确保服务器的安全性。 - **启动与管理**:安装完成后,...
Ejabberd安装配置详解 Ejabberd是一款流行的开源即时通讯服务器软件,具有高度灵活性和可扩展性。下面是Ejabberd安装配置的详细知识点解析: Ejabberd下载 Ejabberd的下载可以从官方网站获取,目前支持多种操作...
1. 选择服务器软件:流行的XMPP服务器软件有ejabberd、Prosody、Openfire等,它们都遵循XMPP协议并提供不同的特性和配置选项。 2. 安装和配置:根据所选服务器软件的文档进行安装,然后配置服务器的网络设置、用户...
最简单的方法是在ejabberd.yml模块设置下启用mod_offline_my并设置某些配置选项。 配置选项 mod_offline_my需要一些参数才能正常运行。 应在ejabberd.yml mod_offline_my下设置以下选项: host (必填, string )-...