ejabberd 简介
ejabberd 是基于 Jabber/XMPP
协议的即时通讯服务器,由 GPLv2 授权(免费和开放源码),采用 Erlang/OTP 开发。它的特点是,跨平台,容错,集群和模块化。
Ejabberd 目前是可扩展性最好的一种 Jabber/XMPP
服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个 cluster
运作。
关于 XMPP 的框架,以文本聊天为例,需要发送的消息为:
<message type="chat" from="kang@server.com" to="test@server.com">
<body>helloWord</body>
</message>
基中 from
是从哪个用户发送的消息,to
是发给谁的消息,XMPP
的用户都是以邮箱形式。body
就是我们发送的消息文本。
好了,说到这里,我们就来开发一个基于 XMPP 的 IOS 聊天客户端程序,首先我们需要 XMPP 服务器,这里,我就拿本机做服务器,首先从xmpp Server下载ejabberd 这个服务器,ejabberd 支持 Linux / Mac OS X / Solaris / Windows
,所以任何操作系统都可以做我们的聊天服务器。好了,下载完后,一步一步安装就可以了,这里我们要注意一下。
打开安装包,进行安装
这里我们的服务器就是 appledeimac.local
(一般就是机器名,默认就可以了,不需要改),每台机器的用户名都不一样,这里的服务器域名就是机器名,这个我们需要记住哦
接着一步一步,还要设置管理员密码,密码当然也需要记住了,不然我们没办法登录管理员页面去。
好了,安装完后启动,如图所示:
方法一:终端输入
方法二:直接点击 start
我们点击 admin interface
,会要求我们输入用户名和密码:
这里用户名是前面我们安装的时候有一个管理员名,将管理员名跟我们的服务器组合就可以了,我这里是 admin@appledeimac.local
,每一台机器都不一样,不要照抄哦,这样你是登录不了的,密码就是安装的时候设置的密码,我的是 12345
,如果一直进入不了,就关闭网页,输入网址:http://localhost:5280/admin
Configuring Jabber Users
At the moment our service has just administrators. We need to populate it with at least one user. The previous web page contains a link to the admin interface, which is available at http://localhost:5280/admin/. Once you have logged in as the admin you should see a console like the following.
登录成功后就会显示如下页面
这里我们需要解释的就是"访问控制列表",这里是设置管理员的,我们可以在这里创建其他管理员,这个不是我们的重点,我们的重点是"虚拟主机"
点开->虚拟主机,下面有一个 appledeimac.local
,也点开
这里有一个 用户
,我们需要创建几个用户来进行数据交互。
我创建了 kang@appledeimac.local
,test@appledeimac.local
,abc@appledeimac.local
这几个用户,过一会我们就用这几个用户进行聊天
好了,服务器装好了以后,我们就需要下载个客户端来进行聊天,这里有一些客户端工具
http://xmpp.org/xmpp-software/clients/,这里我们主要推荐 MAC 用 Adium,Windows 用 Citron。
安装 Adium
成功登陆后,显示可以聊天状态
在 ejabberd 里面可以看到 admin@appledeimac 用户在线
添加好友
选择联系人
双击联系人,发送一条信息
在 ejabberd 中就可以看得一条离线信息
可以看到 body 里面就是发送的内容