iOS 使用XMPP框架开发IM聊天模块,实现简单的文字聊天
2016-06-15 14:41
656 查看
首先,还是先搭建一个测试服务器吧。
参考网址:http://code.tutsplus.com/tutorials/building-a-jabber-client-for-ios-server-setup--mobile-6958
搭建eJabberd服务器,mac系统安装包下载地址:http://pan.baidu.com/s/1dFgADOX
按照教程来走,有不一样的百度一下,基本就能搞定啦。PS:这个是老版本的eJabberd安装包,不知道为什么,用最新版的设置一些参数就是不成功,老版本的就可以了。
OK,现在服务器安装完毕,创建两个账号,用iMessage和另一款支持eJabberd服务器的聊天软件互相聊一下,能互相聊就OK了。
附上mac下的一款聊天软件Adium的下载地址:http://pan.baidu.com/s/1jH9W2fO
下一步,开始写代码吧
参考教程:http://www.jianshu.com/p/c7bbbad90639
基本上按照教程来就可以啦,但是在我的Demo中,他的数据库查询语句跑不通,因此在Demo中,我把查询语句注释掉了。
最后,附上Demo,只实现了文字聊天功能,其他扩展功能如参考教程所说的方法开发就行了。
Demo下载地址:http://pan.baidu.com/s/1o81rb9S,对了,Demo的XMPP部分是用Swift写的,UI页面OC写的。
最最后,XMPP貌似不支持实时语音通话和实时视频通话,扩展协议里好像有支持,请自行查找吧。
做Demo的过程中,搜索了很多的资料,发现XMPP缺点是太臃肿,据说70%的传输数据都在传协议内容,只有30%是IM聊天的内容。
其他实现IM的方式:WebRTC、WebSocket、socket.io、MQTT、自定义协议等等,建议想做IM的好好查查相关资料。技术选型很重要,且行且珍惜。
参考网址:http://code.tutsplus.com/tutorials/building-a-jabber-client-for-ios-server-setup--mobile-6958
搭建eJabberd服务器,mac系统安装包下载地址:http://pan.baidu.com/s/1dFgADOX
按照教程来走,有不一样的百度一下,基本就能搞定啦。PS:这个是老版本的eJabberd安装包,不知道为什么,用最新版的设置一些参数就是不成功,老版本的就可以了。
OK,现在服务器安装完毕,创建两个账号,用iMessage和另一款支持eJabberd服务器的聊天软件互相聊一下,能互相聊就OK了。
附上mac下的一款聊天软件Adium的下载地址:http://pan.baidu.com/s/1jH9W2fO
下一步,开始写代码吧
参考教程:http://www.jianshu.com/p/c7bbbad90639
基本上按照教程来就可以啦,但是在我的Demo中,他的数据库查询语句跑不通,因此在Demo中,我把查询语句注释掉了。
最后,附上Demo,只实现了文字聊天功能,其他扩展功能如参考教程所说的方法开发就行了。
Demo下载地址:http://pan.baidu.com/s/1o81rb9S,对了,Demo的XMPP部分是用Swift写的,UI页面OC写的。
最最后,XMPP貌似不支持实时语音通话和实时视频通话,扩展协议里好像有支持,请自行查找吧。
做Demo的过程中,搜索了很多的资料,发现XMPP缺点是太臃肿,据说70%的传输数据都在传协议内容,只有30%是IM聊天的内容。
其他实现IM的方式:WebRTC、WebSocket、socket.io、MQTT、自定义协议等等,建议想做IM的好好查查相关资料。技术选型很重要,且行且珍惜。
相关文章推荐
- iOS 开发使用七牛云存储与自己产品的配合
- ios开发之----复制和粘贴
- 【iOS开发】NSDictionary 判空处理
- iOS --二维码
- iOS设计模式之代理模式
- iOS-设置导航栏颜色(iOS8+)
- iOS 单元测试4- 单元测试编码规范
- iOS 单元测试3- Singleton如何测试
- iOS 单元测试2- OCMock常见使用方式
- iOS 简单的视频直播功能开发(实时视音频流录制编码+RTMP传输+实时拉流解码播放)
- iOS 打包 上架流程
- iOS 单元测试1- 单元测试框架选型
- 编译libRTMP(RTMPdump) For iOS
- iOS平台基于ffmpeg的视频直播技术揭秘
- iOS 宏(define)与常量(const)的正确使用
- 怎么升级iOS10教程
- 支付宝 sdk 调试
- iOS导航栏随滑动渐隐渐现且不影响push页面导航栏的实现方式
- iOS开发让Xcode的控制台支持LLDB类型的打印
- iOS runtime 和 runloop