白日依山尽吧 关注:8贴子:271
  • 3回复贴,共1
最近感觉到即时通讯的需求是越来越大,是时候学习这方面了,就从xmpp协议来开始吧。


IP属地:广东来自Android客户端1楼2013-09-03 10:50回复



    IP属地:广东3楼2013-09-03 14:52
    回复
      2025-05-10 06:15:08
      广告

      XMPP协议网络架构
      XMPP是一个典型的C/S架构,而不是像大多数即时通讯软件一样,使用P2P客户端到客户端的架构,也就是说在大多数情况下,当两个客户端进行通讯时,他们的消息都是通过服务器传递的(也有例外,例如在两个客户端传输文件时).采用这种架构,主要是为了简化客户端,将大多数工作放在服务器端进行,这样,客户端的工作就比较简单,而且,当增加功能时,多数是在服务器端进行.XMPP服务的框架结构如下图所示.XMPP中定义了三个角色,XMPP客户端,XMPP服务器、网关.通信能够在这三者的任意两个之间双向发生.服务器同时承担了客户端信息记录、连接管理和信息的路由功能.网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信)、MSN、ICQ等.基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML,工作原理是:
      (1)节点连接到服务器;(2)服务器利用本地目录系统中的证书对其认证;(3)节点指定目标地址,让服务器告知目标状态;(4)服务器查找、连接并进行相互认证;(5)节点之间进行交互.


      IP属地:广东5楼2013-09-03 14:53
      回复

        XMPP客户端
        XMPP 系统的一个设计标准是必须支持简单的客户端。事实上,XMPP 系统架构对客户端只有很少的几个限制。一个XMPP 客户端必须支持的功能有:
        1. 通过 TCP 套接字与XMPP 服务器进行通信;
        2. 解析组织好的 XML 信息包;
        3. 理解消息数据类型。
        XMPP 将复杂性从客户端转移到服务器端。这使得客户端编写变得非常容易,更新系统功能也同样变得容易。XMPP 客户端与服务端通过XML 在TCP 套接字的5222 端口进行通信,而不需要客户端之间直接进行通信。
        基本的XMPP 客户端必须实现以下标准协议(XEP-0211):
        RFC3920 核心协议Core
        RFC3921 即时消息和出席协议Instant Messaging and Presence
        XEP-0030 服务发现Service Discovery
        XEP-0115 实体能力Entity Capabilities


        IP属地:广东6楼2013-09-03 14:54
        回复