IM开发(1)-ejabberd服务器搭建

最近项目中需要集成IM功能,市面上有很多的第三方提供im服务,比如环信、融云等,但都有使用限制的地方,如果不使用第三方可以自己去实现一套IM系统,不过一个IM系统涉及到的东西比较多,开发难度较高。另一种选择是使用xmpp,xmpp的优点是有很多的开源实现,比如服务端的ejabberd、Openfire,iOS以及安卓端都很优秀的开源库可以使用,而且传输安全以及扩展性强等(环信也是基于xmpp);同时也有一些缺点,比如不能传输二进制数据以及费流量等,有些地方需要去改进。
下面记录如何使用XMPP来简单实现IM功能,在这之前需要先搭建本地服务器用于测试。

ejabberd服务器搭建

为了实现IM聊天,需要先搭建一个XMPP服务器,这里我们采用ejabberd来作为服务器,ejabbered采用Erlang语言编写,由于语言的特性天生适合高并发的情景。

  • 安装Erlang
    在安装ejabbered之前需要先安装Erlang,在控制台输入命令
    brew install erlang
    等待安装完成即可。
  • 安装ejabbered
    ejabbered服务器的安装非常简单,下载ejabberd安装包直接安装即可。

    ejabbered安装包.png

    安装完之后可以在Applications目录先找到:

    目录结构.png

    由于我们的服务器只是测试用的,比较重要的是bin目录下的start和stop命令,这两个分别用于开启和关闭xmpp服务,设置这两个命令为可执行:
    chmod 755 stop
    chmod 755 start
    现在输入命令 ./start可以看到如下的页面

启动页面.png
  • 添加用户
    现在我们的服务器只有administrators,我们需要增加几个用户,也方便后面测试,可以输入http://localhost:5280/admin/ 到ejabberd的后台管理页面:

管理页面.png


点击虚拟主机,选择用户菜单可以看到添加用户的页面如下,我们添加了user1@lujiangbin.local和user2@lujiangbin.local两个用户:


添加用户.png
  • 测试服务器
    现在可以来测试服务器是否能正常运行了。要测试的话我们需要两个支持xmpp协议的客户端,可以使用Mac OSX自带的iMessage(登陆user1)和Adium(登陆user2) ,其中支持xmpp协议的客户端有:
    http://xmpp.org/xmpp-software/clients/

打开iMessage添加用户


添加用户user1.png

iMessage可能会提示服务器的证书需要验证,点击继续即可:


屏幕快照 2015-10-08 下午3.34.55.png


可以看到user1已经登陆成功了。


登陆成功

接着打开Adium添加user2@lujiangbin.local用户,添加过程跟iMessage类似:


添加用户1.png


设置连接服务器为localhost:


添加用户2.png

由于现在user1和user2还不是好友关系,因此没法进行聊天,点击iMessage添加好友user2@lujiangbin.local:


添加好友


在Adium会收到验证请求,点击接受双方互加好友,接着就可以进行im聊天了:


好友添加.png

聊天.png


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值