最近的项目用到了阿里百川即时通信云。按照官网的Demo以及官方开发文档集成和开发的过程还是相当的顺利的。因此,今天在这里我并不打算赘述开发过程,而是简单谈一下自己对于即时通信的原理的理解。

目前IM有四种协议:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)以及XMPP。PRIM与XMPP、SIMPLE类似,但已经不再使用了。

在这里,我们来深入的了解一下xmpp协议。

首先,我们下来理解一下xmpp协议是什么?

Xmpp是一种基于xml的协议,即用TCP协议来传递xml数据流。

那么问题来了,为什么事TCP而不是HTTP协议呢?

个人理解:即时通讯,顾名思义信息的交换是实时的,因此需要在通讯双方之间建立一条长连接,而HTTP协议是一种无状态的连接,数据一次交换完之后连接就断开了。这显然与即时通讯的思想史相悖的。

接下来,我们聊一下xmpp的基本网络结构是什么样的。

Xmpp定义了三个角色:客户端、服务器、网关。前面两个自然不用多说,读者应该能明白。网关的主要作用是实现和其他通讯协议或者通信系统的交互而设计的(与计算机网络中的网关的概念是不一样的)。Xmpp基本的网络形式是单个客户端通过TCP\Ip协议连接到但服务器,然后在上面传输xml数据。所以,xmpp实际传输的xml形式的通讯指令。

Xmpp的工作原理:

所有从一个xmpp client到另一个xmpp client的数据都要通过xml Server。即client 连接到server,server通过本地目录的证书对其进行认证。Client告知server另一个Client的目标地址,server返回对应Client的当前状态,并查找Client并建立连接,之后Client之间就可以交互了。

题外话:既然说到了xml,我想到了最近在面试时遇到的一个比较有意思的问题,在这里贴出来,大家一起讨论着玩。

题目大概是这样的,有几十个GB的xml数据,需要将其解析出来,并将相应节点的数据存储到数据库中,请你设计一种思路,使得效率最高。(强调效率)

有想法的读者在评论区畅所欲言吧,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

即时通讯之xmpp协议简析相关推荐

  1. 即时通讯:XMPP基础

    即时通讯系列阅读 即时通讯基础 即时通讯:XMPP基础 即时通讯:XMPP项目实践-微聊 Smack类库最好的学习资料 1. XMPP 简介 XMPP(Extensible Messaging and ...

  2. 即时通讯:XMPP项目实践-微聊

    即时通讯系列阅读 即时通讯基础 即时通讯:XMPP基础 即时通讯:XMPP项目实践-微聊 Smack类库最好的学习资料 1. 项目简介 做一个类似QQ 的通讯工具,要求有注册.登录.添加好友.添加分组 ...

  3. dhcp协议服务器端默认通信端口是,DHCP协议简析

    不知道看官大人是否有过这样的疑惑?一台计算机,插上网线是不是就可以直接上网了呢?其实没有这么简单,需要配置本机IP地址.子网IP地址.网关IP地址和DNS地址等.配置有两种方式,一种是手动配置,采用静 ...

  4. TCP/UDP,SOCKET,HTTP,FTP协议简析

    (一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传 ...

  5. 兼具高效与易用,融云 IM 即时通讯长连接协议设计思路

    无论是 PC 端还是移动端,接入网络实现通信都需要建立双端的连接.关注[融云全球互联网通信云]了解更多 客户端和服务端建立连接后不断开,然后进行通信(也就是发送报文)的方式就是长连接. 与之相反,短连 ...

  6. 802.11--WPS(Wi-Fi Protected Setup)协议简析

    一.概述 WPS全称为Wi-Fi Protected Setup,是WSC规范早期的名字,WSC全称为Wi-Fi Simple Configuration,该项技术用于简化SOHO环境中无线网络的配置 ...

  7. HTTP协议简析《图解http》

    一.概念 协议:协议是指计算机通信网络中两台计算机之间进行通信所必须遵守的规定和规则. HTTP协议:通常被翻译为"超文本传输协议",是一种详细规定了浏览器和万维网服务器之间互相通 ...

  8. 网络摄像机编码标准及传输协议简析

    视频监控系统从第一代模拟系统(VCR)到第二代部分数字化系统(DVR/NVR),再到第三代完全数字化系统(网络摄像机,网络视频服务器),三个阶段的发展演变预示着全数字化视频监控系统不久将成为安防市场的 ...

  9. 流媒体服务器之rtp协议,rtcp协议,rtsp协议,sdp协议,sip协议简析

    0.前言 流媒体服务器做音视频媒体传输主要就两件事:媒体回话协商,媒体数据传输:下面这几种协议就围绕着这两个需求而产生. 1.rtp协议 rtp的全称是实时传输协议RTP(Real-time Tran ...

  10. QUIC/HTTP3 协议简析

    从 HTTP 的进化历史讲起,细说使用协议的变迁,了解原因发现问题,解码 QUIC 在 HTTP3 中的支撑作用,共同探讨 HTTP3 的未来. HTTP.HTTP2 和 HTTP3 先和大家来回顾一 ...

最新文章

  1. 常用英文标点符号的使用
  2. 服务器系统选择什么,服务器选择什么系统
  3. java字符_Java String 类
  4. layui关闭表格编辑_告别复制粘贴,表格再多也能快速合并!
  5. CUDA编程中内存管理机制
  6. java bean状态_无状态和有状态企业Java Bean
  7. django访问mysql数据库--模型(model)
  8. 开源的Linphone SIP 电话存在栈漏洞,可远程使客户端设备崩溃
  9. java sbt二叉树,Treap——堆和二叉树的完美结合,性价比极值的搜索树
  10. 高性能加速深度学习算法
  11. EXCHANGE RBAC(基于角色的访问控制)管理工具
  12. 深入思考内积运算,再看傅里叶系数、伽辽金法本质
  13. 小米路由器显示无法连接服务器错误代码,小米路由器:路由器无法上网怎么办...
  14. Spring Cloud如何可用于微服务架构
  15. 忽视警告_不要忽视下雨的风险2
  16. 简单的网络爬虫-喜马拉雅音频爬虫
  17. npm使用过程中的一些错误解决办法及npm常用命令
  18. 辅助知识-第2 章 项目合同管理
  19. 拥有一套如何让客户购买的方法?
  20. 软件测试专业职业访谈报告范文,第一部分:创业者访谈报告

热门文章

  1. 基于Arduino的智能避障小车
  2. 为什么我们需要更注重源代码安全?
  3. 学习笔记(3):《微电子器件》陈星弼(第四版)第1章 半导体物理基础及基本方程
  4. html里制作简单导航栏
  5. 时域进行两次傅里叶变换
  6. RTL8187B无线网卡不能上网的解决办法
  7. 如何在浏览器中下载网站的https证书
  8. 计算机病毒是不会破坏计算机软件的,计算机病毒是不会破坏计算机硬件的。
  9. rubyinstaller官网无法访问的解决办法
  10. 使用Python2.7和火狐浏览器下载QQ空间好友相册