码迷,mamicode.com
首页 > 其他好文 > 详细

开发社交应用的利器——Ejabberd 一瞥

时间:2015-04-06 10:13:30      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:

Erlang在社交应用中的地位突显,自己搭一个大容量高并发的IM服务器变得不那么遥不可及了。Ejabberd 正是这样一个不错的选择,至少是一个很棒的参考。对于一个4核16G内存的服务器,单个Ejabberd节点可以支持30万的IM用户。

 

ejabberd是基于Jabber/XMPP协议的即时通讯服务器,由GPLv2授权(免费和开放源码),采用Erlang/OTP开发。它的特点是跨平台,容错,集群和模块化。

 

XMPP是由IETF制定的一个可扩展的即时消息通信协议。XMPP基本有两部分组成,一部分是它的核心协议,还有一部分是扩展协议。其中核心协议主要由RFC-6120、RFC-6121、RFC-6122组成。还有一堆的扩展协议,具体可以参见XMPP官网扩展协议列表部分。一般会使用到的扩展协议包括XEP-0160 XEP-0013离线消息处理、XEP-0045多用户聊天、XEP-0096文件传输。Smack是Java语言写的XMPP Library,貌似Java中较好的XMPP客户端了。

 

Ejabberd 的系统架构如图所示:(http://docs.ejabberd.im/architect/

 

技术分享

 

Ejabberd 支持的主要功能有:

l  点对点消息One-to-onemessaging

l  存储转发Store-and-forward(offline messages)

l  通讯录和状态显示

l  群聊

l  消息备档管理

l  在线状态扩展:Personal Event Protocol (PEP)和输入状态指示

l  隐私设定

l  支持vCards的用户资料

l  基于 BOSH 和 websockets的web支持

l  面向移动设备的流式管理(aka XEP-0198)

l  消息发送回执(akaXEP-184)

l  最后的消息活动

l  命令行管理工具…...

 

Ejabberd既可以使用Mnesia作为数据库,也可以是Mysql等。基于良好的可扩展性,ejabberd同样支持SIP和WebRTC。

开发社交应用的利器——Ejabberd 一瞥

标签:

原文地址:http://blog.csdn.net/wireless_com/article/details/44899559

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!