博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开发社交应用的利器——Ejabberd 一瞥
阅读量:5938 次
发布时间:2019-06-19

本文共 934 字,大约阅读时间需要 3 分钟。

版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/44899559

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 的系统架构如图所示:()

 

 

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。

你可能感兴趣的文章
CentOS使用chkconfig增加开机服务提示service xxx does not support chkconfig的问题解决
查看>>
微服务+:服务契约治理
查看>>
save
查看>>
Ubuntu使用小技巧
查看>>
Android DrawLayout + ListView 的使用(一)
查看>>
clear session on close of browser jsp
查看>>
asp.net mvc Post上传文件大小限制 (转载)
查看>>
关于吃掉物理的二次聚合无法实现的需要之旁门左道实现法
查看>>
mysql出现unblock with 'mysqladmin flush-hosts'
查看>>
oracle exp/imp命令详解
查看>>
开发安全的 API 所需要核对的清单
查看>>
Mycat源码中的单例模式
查看>>
WPF Dispatcher介绍
查看>>
fiddler展示serverIP方法
查看>>
C语言中的随意跳转
查看>>
006-spring cloud gateway-GatewayAutoConfiguration核心配置-GatewayProperties初始化加载、Route初始化加载...
查看>>
WPF中如何将ListViewItem双击事件绑定到Command
查看>>
《聚散两依依》
查看>>
小tips:你不知道的 npm init
查看>>
The Beam Model:Stream & Tables翻译(上)
查看>>