zoukankan      html  css  js  c++  java
  • 【即时通讯】即时通讯及XMPP概述及…

    在讲解XMPP前,我们需要先了解什么是即时通讯技术:

    * 即时通讯技术(IM - InstantMessaging)支持用户在线实时交谈。当一方需要发送消息时,用户必须打开一个窗口,以便让用户与交流对象在窗口中输入并显示交谈内容。
    * 目前有许多IM系统,如QQ、MSN、YahooIM等等,它们主要区别在于各自通讯协议的实现。所以即时通讯的技术核心在于它的传输协议。
    * 协议用来说明信息在网络上如何传输,开发者经过许多努力试图统一各大主要IM供应商的标准(Yahoo、Microsoft),但是目前还没有成功案例。一旦统一传输协议,那么理论上可以实现各个IM之间的直接通讯,为了创建即时通讯的统一标准,目前已经出现过的IM协议包括:IETF的对话初始协议(SIP)和及时通讯对话初始协议和表示扩展协议(SIMPLE)、应用交换协议(APEX)、显示和及时通讯协议(PRIM)还有基于XML且开放的可扩展通讯及表示协议(XMPP)协议(前身称为Jabber 协议)。

    XMPP的历史:
    * XMPP是基于XML的协议,前身是Jabber,是一个开源组织定义的网络即时通讯协议。 用于即时消息(IM)以及在线探测。最初XMPP是作为一个框架开发,目标是支持企业内部的及时消息传递和联机状态应用程序。
    *XMPP是一个分散型通信网络,所以,只要网络基础设施允许,任何XMPP用户都可以向其他任何XMPP用户传递消息。多个XMPP服务器之间也可以通过专门的服务器 —— 服务器 协议进行通信,提供了创建分散型社交网络和写作框架的可能性。
    * 尽管XMPP的出现是为了满足 个人 —— 个人即时消息传递,但它的潜力不仅限于此。 

    概述:
    *XMPP是一种基于XML的协议,它继承了XML环境中灵活地发展性。也说明了XMPP是可扩展的。可以通过发送扩展的信息来处理用户需求,一级XMPP的顶端建立了如内容发布系统和基于地址的服务等应用程序。而并且,XMPP包含了针对服务器端的软件协议,所以能与另一端进行通信,使得开发者更容易建立客户应用程序或给一个配置好的系统添加功能。
    *XMPP的核心XML流传输协议的定义使得XMPP能够在一个比以往网络通信协议更规范的平台上。借助于XML一月解析和阅读的特征,使得XMPP的协议能够非常漂亮。
    *XMPP的即时通讯扩展应用部分是根据IETF在之前对即时通讯的一个抽象定义,与其他行业已得到广泛使用的即时通讯协议,诸如AIM,QQ等功能完整,完善等先进性。
    * XMPP的扩展协议Jingle使其支持语音和视频(目前IOS尚不支持)
    * XMPP的官方文档是RFC 3920
    * XMPP协议曾经是Google力推的及时通信协议,代表作Gtalk

    XMPP的基本结构
    *XMPP是一个典型的C/S架构,而不是像大多数即时通讯软件,使用P2P客户端到客户端的架构,也就是说在大多数情况下,当2哥客户端进行通讯时,他们的消息就是通过服务器传递。采用这种架构,主要是为了简化客户端,将大多数工作放到服务器端进行。
    * XMPP中定义了三个角色,客户端,服务器,网关。通信能够在这三者任意两个之间双向发生
    * 服务器同事承担了客户端信息记录,连接管理和信息的路由功能
    *网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信), MSN,ICQ等。
    * 基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML流

    以上资料均来自网络,并加以整理,在此感谢分享者!

    XMPP的优缺点:
    * 优点
    1> 开放(免费)
    2> 标准(XMPP的技术规格已被定义在RFC 3920及RFC 3921)
    3> 分散
    4> 安全(TCP/IP)
    5> 可扩展
    * 缺点
    1> 数据负载过重XML
    2> 没有二进制传输(都以XML的字符串传输)



    要使用XMPP,我们就必须配置XMPP环境,接下来开始进入正题:

    【即时通讯】即时通讯及XMPP概述及环境配置

    安装Mysql
    步骤就不在重复写了,可以参考:【数据库】MySQL的安装与简单使用
    安装完MySQL后,我们到XMPP官方网站下载需要的东西(openfire,Adium,Spark(新版暂不支持MAC),xmppframework)找不到的朋友也可以到 XMPP资源 下载 密码:j33c
    【即时通讯】即时通讯及XMPP概述及环境配置

    分别在服务器,客户端,框架里面找到以下几个资源进行下载

    Openfire:

    【即时通讯】即时通讯及XMPP概述及环境配置
    Adium:

    Spark:
    xmppframework:


    下载完成后,我们先来安装Openfire配置服务器
    【即时通讯】即时通讯及XMPP概述及环境配置
    因为Openfire是JAVA语言写的,所以需要JAVA环境的支持,我们要检测一下电脑是否安装了JAVA环境:
    打开终端 —— 输入java-version ———— 如果有提示信息,证明有安装,如果没有———— JDK下载 —— 安装

    接下来打开 系统偏好设置(记得先完全退出再重新打开,因为有缓存,可能看不到图标) —— 找到Openfire并打开 ——查看是否连接状态。

    【即时通讯】即时通讯及XMPP概述及环境配置

    接着我们来配置Openfire
    1. 配置数据库(在我们配置好的Mysql内创建一个专门给openfire使用的数据库)
    导入Openfire里数据库表脚本文件
    * 配置openfire管理员密码

    首先需要找到脚本文件
    Openfire的安装位置在/usr/local/openfire/内,数据库脚本保存在resources/database文件夹下








    【即时通讯】即时通讯及XMPP概述及环境配置

    接下来就可以访问openfire文件夹了


    【即时通讯】即时通讯及XMPP概述及环境配置

    接下来打开MySQLWorkbench(MySQL管理工具)










    OK,导入完毕。接下来就是Openfire的一些配置 —— 语言 —— 服务器设置 —— 数据库设置 —— 外形 ——管理员设置

    1.


    2.

    3.

    4.

    5.

    【即时通讯】即时通讯及XMPP概述及环境配置
    6.

    7. 到此,配置完成。

    【即时通讯】即时通讯及XMPP概述及环境配置

    8. 接下来,简单看一下怎么使用openfire后台
    【即时通讯】即时通讯及XMPP概述及环境配置



    【即时通讯】即时通讯及XMPP概述及环境配置

    就先更到这里,接下来就是【即时通讯】XMPP调试与简单使用

    如果有什么错误或者问题,请联系我,转载请注明出处,谢谢!

  • 相关阅读:
    Java【第二篇】基本语法之--进制、运算符
    Java【第一篇】基本语法之--关键字、标识符、变量及分类、数据类型及转换
    安装运行zookeeper的坑
    部署java应用的几种方式
    解决sudo用户找不到环境变量的问题
    Python装饰器详解
    filebeat开启自带模块收集日志如何辨别日志来源等
    使用elasticsearch7.3版本在一台主机上部署多个实例组建集群
    redis 集群搭建
    Kibana多用户创建及角色权限控制
  • 原文地址:https://www.cnblogs.com/miaomiaoshen/p/5188636.html
Copyright © 2011-2022 走看看