iOS即时通讯 – IM(即时通讯)

iOS即时通讯 – IM(即时通讯)

XMPP是什么

  • XMPP:The Extensible Messaging and Presence Protocol(可扩展通讯和表示协议)
  • XMPP是一种基于XMl的即时通讯协议
  • XMPP的官方文档是RFC 3920 这个文档定义了登录,退出,获取好友,发送消息等等的XML数据源传输协议
  • XMPP是一个典型的C/S框架* 基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XM流
  • XMPP是一种类似于HTTP协议的一种数据传输协议,其过程就如同“解包装-> 包装”的过程。只需要理解其接收的类型及返回的类型,便可以很好地利用XMPP来进行数据通讯
  • XMPP官方网站-http://xmpp.org

XMPP实现即时通讯的准备工作

  • 下载Openfire服务器
  • 下载XMPPFramework框架

是否使用过XMPP,XMPP的实现原理

  • XMPP是一个即时通讯协议,它定义好用于即时通信在网络上数据传输格式的,比如登录,获取好友列表等等的格式。XMPP在网络传输的数据是XML格式
  • 比如登录:把用户名和密码放在xml的标签中,传输到服务器
  • XMPP是一个基于Socket通过的网络协议,目的是为了保存长连接,以实现即时通讯功能
  • XMPP的客户端是使用一个XMPPFramework的框架
  • XMPP的服务器是使用Openfire,一个开源的服务器 假设客户端获取到服务发送过来的还有消息,客户端需要对XML进行解析,使用的解析框架的KissXML框架

在使用XMPP的时候有没有遇到什么苦难

  • 发送附件(图片,语音,文档…)时比较麻烦
  • XMPP框架没有提供附件传送的功能,需要自己实现
  • 实现方法,把文件上传到文件服务器,上传成功后获取文件保存路径,在把附件的路径发送给好友

是否使用过换新,简单的说下环信的实现原理

  • 环信一个即时通信的服务提供商
  • 环信使用的是XMPP的一些,它是在XMPP的基础上进行二次开发,对服* 务器Openfire和客户端进行功能模型的添加和客户端SDK的封装,环信的本质还是使用XMPP,基于Socket的网络通信
  • 环信内部实现了数据缓存,会把聊天记录添加到数据库,把附件下载到本地,程序员更多时间花到界面用户体验上
  • 环信内部已经实现了视频,音频,图片,其他附件发送功能。
  • 环信使用公司可以节约时间成本
  • 不需要公司内部搭建服务器
  • 客户端的开发,使用环信SDK比使用XMPPFramework更简洁方便

(有一句话叫做三人行必有我师,其实做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要这是一个我的iOS交流群656315826,不管你是小白还是大牛欢迎入驻,正在求职的也可以加入,大家一起交流学习,话糙理不糙,互相学习,共同进步,一起加油吧。)

以下网盘内的资料都可以找我免费获取,希望可以帮助到大家

网盘资料

转载于:https://my.oschina.net/u/3874462/blog/1824844

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/101621.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于惠普笔记本电源已接通但不能把电充满

    关于惠普笔记本电源已接通但不能把电充满首先遇到这种情况大家不要慌,不要老想着自己笔记本的什么零件或者什么硬件坏了,如果电量维持在95~100%之间都是正常,因为电池会有一个自我保护的功能,它有一个充电阈值,会使它充的电不超过这个值,还有人专门设置把电量设置在50%左右,朋友的联想电脑好像是可以下载一个联想电脑管家,可以用来调充电阈值,但是貌似惠普的这个充电阈值是不可调的(惠普的这个设定让人无力吐槽)。就像这样插上电源还是这样,…

    2022年8月12日
    6
  • DHCP简单配置-CISCO

    DHCP简单配置-CISCO

    2021年8月1日
    59
  • win10 任务栏锁定,win键没反应

    win10 任务栏锁定,win键没反应现象:之前用win10,换成win10专业版后,安装360优化系统,过了几天后突然发现任务栏好像被锁定一般,按windows键没有任何反应,任务栏打开的文件,图片等等右键也没有反应,讲道理应该有关闭选项的,再次检查发现日期点不开,看不到日历,音量键点了也没有反应。各种百度总之各种找原因都没有找到,直到看到一篇文章才解决问题,原来win10与win7的管理机制不同,不能关闭防火墙的。…

    2022年6月4日
    54
  • git基本用法命令大全

    git基本用法命令大全1.新建本地git仓库,并将本地库关联远程仓库GitHub1.1. git拉取远程分支并创建本地分支1.1.1查看远程分支    gitbranch-r 查看所有远程分支:1.1.2拉取远程分支并创建本地分支        方法一    gitcheckout-b本地分支名origin/远程分支名 使用该方式会在本地新建分支,并自动切换到该本地分支。        方式二    g…

    2022年6月18日
    27
  • 3D电影的原理_3D电影制作

    3D电影的原理_3D电影制作在搞清楚3D立体原理之前我们先了解什么是“真3D”:我们肉眼所看到的景像是一种具有层次、深度的立体影像。一般我们所谓3D游戏或电影,实际上并非真正的3D;因为屏幕先天即是2D

    2022年8月5日
    5
  • leetcode-150. 逆波兰表达式求值(栈)

    leetcode-150. 逆波兰表达式求值(栈)根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1:输入:tokens = [“2″,”1″,”+”,”3″,”*”]输出:9解释:该算式转化为常见的中缀算术表达式为:((2 + 1) * 3) = 9示例 2:输入:tokens = [“4″,”13″,”5″,”/”,”+”]输

    2022年8月11日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号