Ejabberd随记
文章平均质量分 75
langxianwu
本人性格开朗,爱好体育运动和编程.目前从事公安行业软件开发.
展开
-
erlang-ejabberd集群配置
1.环境Ubuntu10.42.在两台服务器S1、S2安装ejabberd 在此假设 S1安装ejabberd的node为ejabberd@admintest。 S2安装ejabberd的node为ejabberd@clustertest。 (注意:1)/sbin/ejabberdctl 中HOST的默认localhost,我在此把默认的HOST改为...原创 2010-08-04 17:57:06 · 241 阅读 · 0 评论 -
ejabberd中mod_privacy_odbc.erl实现没有完全遵循xmpp协议
修改privacy 利用推送 方式 更新privacy list userlist updated_list(_, #userlist{name = OldName} = Old, #userlist{name = NewName} = New) -> if OldName == NewName -> ...2011-03-17 17:14:25 · 93 阅读 · 0 评论 -
mnesia加载mysql表数据(修改ejabberd privacy list)
前提:mnesia 一张表 privacymysql 三张表privacy_list privacy_list_data privacy_default_list目标:服务start加载mysql 三个表的数据到mnesia privacy表中分析分现 ,mysql 的三个表是通过username name id 相互关联起来的,mnesia就是一个结构表可能习惯了关系...2011-03-23 15:09:10 · 99 阅读 · 0 评论 -
ejabberd-215修正214版本timeout超时
ejabberd-215修正214版本timeout超时我简单测试了一下模拟120K用户登录服务器:2.14抛出 约20Ktimeout提示2.15 没有一个timeout错误提示2011-03-28 17:06:44 · 96 阅读 · 0 评论 -
ejabberd 存储离线消息 判断用户密码是否为空
今天对ejabberd服务器做了一个小小的测试,发现后台抛出 =ERROR REPORT==== 2011-03-29 16:53:30 ===E(<0.18276.0>:ejabberd_auth:256) : The authentication module ejabberd_auth_odbc returned an errorwhen checking use...2011-03-29 17:02:33 · 138 阅读 · 0 评论 -
ejabberd:route去向
ejabberd_local在init中注册了一个服务,pid(self())和MODULE:FUNCTION保存在route表中。ejabberd_router:routeejabberd_router:do_route 判断domain (1)是路由还是(2)交给本地处理(1)ejabberd_local:do_route:(1.1)用户不为空,(1.2)用户为空且资源为空,(1,...2011-04-02 15:27:38 · 198 阅读 · 0 评论 -
list 判断
Lcase L of [] -> ok...; 为空时 [X] -> X..; 一个元素时 List ->L .... 多个元素时end ejabberd_route代码片段 case mnesia:dirty_read(route, LDstDomain) of [] ->...2011-04-07 11:19:42 · 112 阅读 · 0 评论 -
ejabberd subscribe订阅后出席 available
ejabberd_c2sroster_change获取了 P=StateData#state.pres_last又直接router了了P ejabberd_ruter(From, To, P)2011-04-08 09:14:16 · 113 阅读 · 0 评论 -
mysql 与 mnesia同步
1、mysql --------------操作成功--------> mnesia---操作成功---------> 结束2、mysql---------------操作成功-------->mnesia----操作失败 throw异常-------->会滚----->结束3、mysql---------------操作失败-------->直接...2011-04-12 11:46:50 · 180 阅读 · 0 评论 -
configure: error: Could not find development files of Expat library
在64位centos安装ejabberd ./configure --enable-odbc时出现一下错误checking for XML_ParserCreate in -lexpat... noconfigure: error: Could not find development files of Expat library解决方法来自http://www.ques...2011-12-28 16:56:41 · 820 阅读 · 0 评论 -
ejabberd presence 以前忽略的地方
session_established2 ------->presence_update ------------------------------->presence_broadcast_first -------------------------------------->发送probe 1889 ?SETS:fold(fun(JID, X) ...2012-06-06 17:40:18 · 117 阅读 · 0 评论 -
ejabberd 三个没有弄明白的疑问
1>1794 case transaction(CreateNode, transaction) of1795 {result, {NodeId, SubsByDepth, {Result, broadcast}}} ->1796 broadcast_creat...原创 2012-06-08 17:32:41 · 126 阅读 · 0 评论 -
采用message消息 privacy list check_packet
采用message消息 privacy list check_packet check_packet默认返回allow,其他返回action(allow|deny) <message to="server_test_user_2@servertest.igrslabdns.com/user2" type="chat" id="mir_180"><com...2011-03-11 11:26:09 · 185 阅读 · 0 评论 -
ejabberd-xml
过滤 非法xml数据 remove_cdata(L) -> [E || E <- L, remove_cdata_p(E)].remove_cdata_p({xmlelement, _Name, _Attrs, _Els}) -> true;remove_cdata_p(_) -> false. ...2011-03-10 10:58:44 · 85 阅读 · 0 评论 -
erlang数据转换成 xml
19 Content= 20 {xmlelement, 21 "query", 22 [{"xmlns", 23 "http://jabber.org/protocol/disco#items"}],Content...2011-06-21 11:57:34 · 198 阅读 · 0 评论 -
第一次写ejabberd gen_mod module 服务端简单返回数据
最近两天 看了一下 ejabberd的用法,关于http request handler 在process-one.net上说的很清楚,很件的就实现一个Demo.对于gen_mod 只写个start/2 stop/1 也很简单。但想做点事情对我来说有点难度了。带着疑问开始探索了,有人会 但不想直接让人家教,只题醒一下就够了。不多说了1、用了ejabberdhooks2、用了ejab...原创 2010-08-13 13:33:33 · 97 阅读 · 0 评论 -
ejabberd_listener:247) : (#Port<0.3947>) Failed TCP accept: enfile
=INFO REPORT==== 2010-12-22 14:41:35 ===I(<0.504.0>:ejabberd_listener:247) : (#Port<0.3947>) Failed TCP accept: enfile =INFO REPORT==== 2010-12-22 14:41:35 ===I(<0.504.0>:...2010-12-22 15:16:56 · 104 阅读 · 0 评论 -
ejabberd修改get_roster方法使其能获的组用户
与一个网友的聊天,虚拟机重装了,前面的聊天丢失了上次的问题,基本弄清楚了。原始默认是获取自己的好友列表我的目标是获取指定好友下的指定组下面的所有成员。 主要是在get_roster函数, 默认是get_roster(LUser, LServer) -> 就是获取LUser的下面的所有好友修改后get_roster_2(LUser, LServer, L...2011-01-07 17:47:35 · 113 阅读 · 0 评论 -
ejabberd auth_method,odbc 指定odbc认证
%%%% Authentication using ODBC%% Remember to setup a database in the next section.%%lxw{auth_method, odbc}.<error code='401' type='auth'><not-authorized xmlns='urn:ietf:par...2010-10-13 11:03:55 · 128 阅读 · 0 评论 -
ejabberd HTTP request handlers处理 post get
小例子http://www.process-one.net/en/wiki/ejabberd_HTTP_request_handlers/ 处理GET http://langxianzhe.com?version=1&token=c617b5435134c1735255edeb4f4b93b4&test=Test关键是怎么处理Rquest#request.q中数据 ...2010-10-21 18:16:49 · 110 阅读 · 0 评论 -
http://wiki.woodpecker.org.cn/moin/MiscItems/2010-11-06
昨天用xmerl_scan:string/1 解析xml,发现xmerl_scan:string/1返回的是unicode,如中国的“中”,经过xmerl_scan:string/1处理后,返回的是"[10023]".继续传递的时候到了ejabberd_odbc.erl中,就出错了。因为他没有做处理。 解决此问题有两种方法1.修改 程序代码 对xmerl_scan:string/...2010-10-28 14:07:36 · 123 阅读 · 0 评论 -
FSM limit reached (<0.242.0>): {max_queue,1001}(ejabberd)
前端时间 在做压力测试,从日志上看 到FSM limit reached (<0.242.0>): {max_queue,1001}(ejabberd),因为没做详细记录,没重现。今天又出现了。ERROR 日志 %%%%{max_fsm_queue, 1000}.=INFO REPORT==== 2010-11-03 15:56:37 ===I(<...2010-11-03 17:01:34 · 112 阅读 · 0 评论 -
ejaberd_s2s presence bug
presence_broadcast_first(From, NewStateData, Packet); 和生成的NewState 未使用,导致 当订阅状态为from 和to的时候。且to 先上线,from 再上线,from 再下线时。to没有收到<presence type='unavailable'/> ,实际上是from 没有发送引起的。 17...2011-08-31 21:27:07 · 121 阅读 · 0 评论 -
ejabberd_c2s wait_for_stream 匹配
wait_for_stream 匹配1、closed2、xmlstreamerror3、xmlstreamend4、xmlstreamelement5、timeout6、{xmlstreamstart, _Name,Attrs} wait_for_feature_request 匹配1、closed2、xmlstreamerror3、xmlstreame...2011-06-13 15:45:13 · 153 阅读 · 0 评论 -
ejabberd/tsung 做压力测试万万不可忽视测试工具问题
这两天 用tsung测试ejabberd服务器。2万用户在线,发送online chat message chat/20s。统计结果显示大量用户非常正常close。还显示出很多error_unkown 错误,次错误出现的数量与非常正常close的基本相等。很显然此测试结果不准确。反反复复测试 chat数量越多,此问题越严重。跟踪代码发现get_online 中调用了gen_serv...2011-09-22 18:03:30 · 224 阅读 · 0 评论 -
发布与订阅 publish-subscribe
基本操作5. Entity Use Cases 1. Discover Features 2. Discover Nodes 3. Discover Node Information 4. Discover Node Metadata 5. Discover Items For a Node 6. Retrieve Subscript...2011-02-24 13:43:16 · 564 阅读 · 0 评论 -
ejabberd/riak
今天ubuntu下编译带riak的ejabberd出现一下错误。Compiling c_src/epam.cc_src/epam.c:21:31: fatal error: security/pam_appl.h: No such file or directory 安装 sudo apt-get install libpam0g-dev解决此问题...2012-06-15 15:50:40 · 204 阅读 · 0 评论