openfire+XMPP实现即时通讯(C#客户端Demo)

文章背景 
大部分的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工作原理图

xm001

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删除。

 

你可能感兴趣的:(资源)