文章背景
大部分的APP都是盈利为目的而开发,与消费者互动必成重要的一个功能,有互动就有潜在客户,而且大多数老板都认为自己的APP没有IM功能就会觉得不上档次。目前市面上比较好点的即时通讯第三方有环信、融云等。我不采用第三方的原因主要三点:1、第三方前期免费开放,有可能在圈用户,不排除后期收费;2、其实第三方服务器经常蛋机,总有正在维护升级,请耐心等待啥啥的,总感觉受之于人;3、第三方sdk服务器都是好多人在共享,难免消息延迟。
文件目标
1、搭建XMPP服务器
2、实现XMPP即时通讯
什么是OpenFire
您可以使用它轻易的构建高效率的即时通信服务器.
Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。
由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务.
1、什么是XMPP
1-1、XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线现场探测。
1-2、XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议
XMPP体系架构
XMPP的基本网络结构 ,xmpp定义了3个角色
Client
Server
Gateway
通信能够在这三者的任意两个之间双向发生。服务器同时承担了客户端信息记录,连接管理和信息的路由功能。网关承担着与异构即时通信系统的互联互通,异构系统可以包括SMS(短信),MSN,ICQ等。基本的网络形式是单客户端通过TCP/IP连接到单服务器,然后在之上传输XML。
客户端利用xmpp(基于TCP/IP)访问server,传输的是XML
Client——–Server—-Client
TCP TCP TCP
XMPP server:其内核是一个XMPP路由器,完成基本组件间的数据包交换和路由。
功能:
1.会话管理器:负责客户端会话认证,在线状态,用户联系表等
2.数据存储器(XDB):连接数据库系统,保持用户信息、通信日志等
3.连接器管理器:管理与客户端之间的连接
4.服务器连接器:管理xmpp服务器之间的连接
5.传输器:建立xmpp服务器与非xmpp服务器通信
XMPP工作原理图
XMPP工作原理说明
所有从一个client到另一个client的jabber消息和数据都要通过xmpp server。
1.client连接到server
2.server利用本地目录系统的证书对其认证
3.client制定目标地址,让server告知目标状态
4.server查找,连接并进行相互认证
5.client间进行交互
---------------------
作者:人与宇宙的关系
来源:CSDN
原文:https://blog.csdn.net/XiNanHeiShao/article/details/76727601
版权声明:本文为博主原创文章,转载请附上博文链接!
Openfire和数据库配置,上一篇文章稍微踩了一下坑,这里就不继续介绍了。
本文是用C#的agsxmpp做客户端Demo,目前只实现了登录和接收发送消息。
坑点:
1、agsxmpp.dll的版本要对正确。引用官方的MiniClient的才Ok.
2、单机测试选本机Ip地址只能选择127.0.0.1才能发送消息。
然后代码打包传上去了。
https://download.csdn.net/download/modiz/10782036
CSDN有点坑,积分不是自己定的。上传资源都不能自己0删除。