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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • WLAN与WIFI的区别[通俗易懂]

    WLAN与WIFI的区别[通俗易懂]WLAN与WIFI的区别WLAN简介:WLAN全称为:WirelessLocalAreaNetworks,中文解释为:无线局域网络,是一种利用射频(RadioFrequencyRF)技术进行据传输的系统,该技术的出现绝不是用来取代有线局域网络,而是用来弥补有线局域网络之不足,以达到网络延伸之目的,使得无线局域网络能利用简单的存取架构让用户透过它,实现无网线、无距离限制的通畅网络。

    2022年7月27日
    10
  • 日志大全_打印机日志

    日志大全_打印机日志日志信息每个用例都会生成一个对应的log日志,位置:<ProjectRootDir>/logs/TestCaseID.run.log.如果你想看到request和response、提取

    2022年7月30日
    7
  • Java基础语法(九)某些类的基操,注意,这真的只是基操!

    Java基础语法(九)某些类的基操,注意,这真的只是基操!

    2021年5月17日
    140
  • visio 2013密钥「建议收藏」

    2NYF6-QG2CY-9F8XC-GWMBW-29VV8FJ2N7-W8TXC-JB8KB-DCQ7Q-7T7V3VXX6C-DN3HQ-3CRXG-RF4KT-YG7V3B3C7Q-D6NH2-2VRFW-HHWDG-FVQB666DNF-28W69-W4PPV-W3VYT-TJDBQN4M7D-PD46X-TJ2HQ-RPDD7-T28P9ND3G9-KQHY4-8P3W2-VG…

    2022年4月16日
    121
  • WPF listview_wpf 数组

    WPF listview_wpf 数组网上很多方法,但是内容包含太全面,代码看上去很复杂,其实其中有很多是控制UI的在WPF中ListView的排序最基本的原理很简单就一句话ListViewControl.Items.SortDescriptions.Add(newSortDescription(“name”,ListSortDirection.Descending));就是这句,主要就是设置ListView的Items的SortDescriptions属性,这个属性是个集合,不同于我们熟悉的SQL或DataView的排序属性设置,SortD

    2022年10月3日
    2
  • WEB基本表单及代码(HTML)[通俗易懂]

    WEB基本表单及代码(HTML)[通俗易懂]由于前两年csdn内容整改导致之前的博客内容排版都错乱了,于是我将内容进行修复,同时放到我的个人博客网站里面,网站才建立不久,很多功能也存在bug,所以暂时不对外开放,欢迎你来吐槽哟。我进大学学的第一个东西就是html(超文本标记语言),简单的理解就是用一个一个的标签,把一个界面所有的东西都展示出来。表单也是一个html标签,不过他允许提交数据到后台,于是,我开始从事web开发。 …

    2022年8月11日
    10

发表回复

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

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