本月博客排行
-
第1名
Xeden -
第2名
fantaxy025025 -
第3名
bosschen - paulwong
- johnsmith9th
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - gengyun12
- wy_19921005
- vipbooks
- e_e
- benladeng5225
- wallimn
- ranbuijj
- javashop
- jickcai
- fantaxy025025
- zw7534313
- qepwqnp
- robotmen
- 解宜然
- ssydxa219
- sam123456gz
- zysnba
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- wiseboyloves
- jh108020
- xyuma
- ganxueyun
- wangchen.ily
- xiangjie88
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- nychen2000
- zxq_2017
- lzyfn123
- wjianwei666
- forestqqqq
- ajinn
- siemens800
- hanbaohong
- 狂盗一枝梅
- java-007
- zhanjia
- 喧嚣求静
- Xeden
最新文章列表
ejabberd教程
一.安装
https://www.digitalocean.com/community/tutorials/how-to-install-ejabberd-xmpp-server-on-ubuntu
二.module开发
http://erlangdisplay.iteye.com/blog/315461
http://erlangdisplay.iteye.com/blog/31 ...
ejabberd openssl
在freebsd中安装ejabberd 2.1.9时出现一下问题:
/usr/local/ssl/lib/libssl.a: could not read symbols: Bad value
解决办法:
重新编译openssl
在config的时候加入shared
比如
./config threads shared zlib
error: ‘PAM_SUCCESS’ undeclared (first use in this function)
在ubuntu中安装ejabber 2.1.8时出现如下错误:
error: ‘PAM_SUCCESS’ undeclared (first use in this function)
解决办法:
#sudo apt-get install libpam0g-dev
Ejabberd roster关系改变,发送type=unavailable 的presence
在ejabberd 2.1.3版本中的ejabberd_c2s.erl中,有这么一段代码:
roster_change(IJID, ISubscription, StateData) -> LIJID = jlib:jid_tolower(IJID), IsFrom = (ISubscription == both) or (ISubscription == from ...
Ejabberd数据操作,如何转义特殊字符
如果从客户端接收的数据中含有特殊字符,如 ', ; , \ 等特殊字符,则用 ejabberd_odbc:escape(Name),方法进行转义,
如果 Name = "姓名'",
使用ejabberd_odbc:escape(Name)转义过后,
SName = ejabberd_odbc:escape(Name),
SName的值为 &quo ...
Openfire 好友状态的发送(用户登录)
客户端在登录 Openfire 时都会收到自己订阅的好友状态,那么这个好友状态是怎么下发下去的呢?
用户在登录后会发送一个<presence> 来更新自己的状态,在PresenceRouter 中进行处理。
这个presence 交由PresenceUpdateHandler 处理,在判断用户为注册用户后使用RosterManager.getRoster() 来获取所有已经订阅的 ...
ejabberd分析(五)+订阅/添加好友
模块ejabberd_c2s中,状态为session_established2。
用户发送iq set 消息到服务器
<iq id="M8QF3-52" type="set"><query xmlns="jabber:iq:roster"><item jid="1555215557@king ...
ejabberd分析(四) 用户登录
仍然看ejabberd_c2s 这个gen_fsm 模块。
RECV <stream:stream to="localhost" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0"& ...
ejabberd分析(三)启动流程
ejabberd的启动从ejabberd:start() 开始。
application:start(ejabberd).
application用来表示一个可以单独启动和停止、并被复用的程序单元。通常一个application都有一个同名的app文件来定义。
对于系统工具(systool)直接调用的app文件必须包含以下几项:
description
, vsn
,
...
ejabberd分析(一)
1.客户端连接服务器,并发送消息给服务器的处理在ejabberd_c2s中。
ejabberd_c2s 是一个gen_fsm 状态机,在 ejabberd启动时装载。
初始状态为 wait_for_stream,接受形为 {xmlstreamstart, _Name, Attrs} 的消息,其他任何消息都会导致stop。
接受到连接请求,发送feature 请求后状态改为wait_for ...