- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
-1-
基于Jabber的即时通信服务器的设计与实现
摘要:本文首先简要的介绍了Jabber及其特点。然后着重的分析了Jabber服务器的架构及其各功能模块。最后给出了主要模块的实现方法。
关键词:Jabber,即时通信,Linux,服务器
1.引言
自从第一个即时通信系统ICQ诞生以来,几大软件商和网站运营商都推出了自己的即时通信系统。MSN,QQ,雅虎通等都积累了他们的用户,随着即时通信软件的增多,即时通信系统市场也越来越混乱,各种系统都采用不同的、不公开的通信协议导致了不同系统之间的互通的难度增大,为了交流,用户不得不申请多个帐户,开启多个客户端。Jabber的诞生就是为了解决即时通信系统之间的互通的问题。它是一个协议开放的,可扩展的系统。为即时通信的互通提供了解决方案。本文分析了Jabber服务器的架构,给出了主要功能模块的实现方法。
2.Jabber概述
Jabber是一个基于Internet的,开放的即时通讯系统,也是一个基于XMLStream的协议,用于在Internet上的两个实体之间交换信息,现场状态和其他的格式化信息。相比其他的即时消息系统,Jabber具有以下几个关键的特点[1]:
1.以XML为基础。XML是互联网上应用之间推荐的交换格式,采用XML作为实体之间通信协议的格式,便于协议的扩展。
2.分布式网络。Jabber服务器可以分布在网络各处,服务器之间可以进行通信。
3.开放的协议和内核代码。
4.模块化的、可扩展的系统架构。模块化的设计有利于系统的可伸缩性、安全性和可扩展性。不同的模块可以运行在不同的服务器上,各司其职,可以适应各种数量级别用户的
系统的应用。
3.Jabber网络结构
如图一,Jabber网络由若干个服务器组成[2],每个服务器可以给众多客户端提供服务,服务器之间通过Internet相互连接。该网络中还存在一个网关服务器,负责协议的转换,以和其他的即时消息系统进行互联。
-2-
图1Jabber网络结构
4.服务器程序框架设计
4.1系统模块划分和功能
图二是服务器程序的框架图[1]:
服务器程序由7个模块组成,各模块的功能是:
C2S:
该模块负责管理客户端的TCP连接、负责用户的登陆认证和注册功能。同时把客户端发送的信息通过Router模块转发到相应的模块,并且转发其他模块的处理结果和消息给客户端。
SM:
当用户登录到Jabber服务器后,该模块负责与客户端的会话,即该模块是一个会话管理模块。这个模块提供即时通信的主要功能,包括信息(主要是文本信息)的存储,信息的转发,好友列表的保存,用户状态的相互通知。
S2S:
当用户需要发送消息到另外一个Jabber服务器上的用户的时候,就需要一个Jabber服
-3-
务器之间连接的通道。该模块即提供这样的一个功能。Logging
该模块是该系统中管理日志的模块,能够记录诸如基本信息,注意,警告等不同级别的信息。
Datastorage:
在服务器上必须保存用户的信息,包括登陆认证信息,用户详细信息,用户好友列表等。该模块负责管理这些信息并且提供查询和修改的接口以供其他模块使用。
Resolver:
该模块类似于一个域名解析系统。为其他模块提供查询其他模块位置信息的功能。Router:
该模块是该系统的中心模块,它是系统模块之间连接的主要纽带。其主要功能是正确的把其他模块的消息转发到指定的模块,实现一个路由的功能。
图2服务器程序框架图
在一个系统中C2S,SM可以存在若干的实例,这样就能实现集群服务器的概念,能够适应不同级别用户的应用。
4.2各模块之间的连接方法
各模块之间使用两种方式连接[1]:链接库,TCP连接。其中C2S,SM,S2S,Resolver和Router之间使用TCP连接,于是这些模块可以分布在不同的服务器上,分散服务器工作的压力,提高多用户连接时的处理性能。
其他模块与Logging,Datastorage之间采用链接库的方式进行连接,Logging,Datastorage为其他模块提供统一的接口。这两个模块功能会频繁的调用,所以采用这种简单快速的方式以提高效率。
5.主要模块功能实现
5.1C2S模块的
您可能关注的文档
- 高中生物教学反思.docx
- 高中生军训心得体会.docx
- 职业卫生与职业医学标准试卷及答案.docx
- 高中生个人总结.docx
- 高压线周围施工安全专项方案范本.docx
- 第六章处方、医嘱、辅助检查报告单及体温单书写要求.docx
- 统计与概率专题复习讲座.docx
- 软件设计大赛策划书.docx
- 风险分级管控体系作业指导书.docx
- (建筑工程管理)建筑测量网上教学活动安排.docx
- DB12 046.89-2011 产品单位产量综合电耗计算方法及限额 第89部分:手机 .docx
- DB12 046.88-2011 产品单位产量综合电耗计算方法及限额 第88部分:晶振 .docx
- DB12T 419-2010 无公害农产品 核桃栽培管理技术规范 .docx
- DB12T 417-2010 沙化和荒漠化监测技术规程.docx
- DB12T 449-2011 民用建筑四防门通用技术条件.docx
- DB12 046.100-2011 产品单位产量综合能耗计算方法及限额 第100部分: 果汁饮料 .docx
- DB12T 427-2010 葱姜蒜中205种农药多残留测定方法-GCMS法.docx
- DB12T 421-2010 有机农产品 甘薯有机栽培技术规范.docx
- DB12T 426-2010 蔬菜水果中205种农药多残留测定方法-GCMS法 .docx
- 《老年人身体康复》精品课件——项目6 中国传统康复技术.pptx
文档评论(0)