CN101888349A - 一种msn与xmpp互通网关 - Google Patents
一种msn与xmpp互通网关 Download PDFInfo
- Publication number
- CN101888349A CN101888349A CN2009100510978A CN200910051097A CN101888349A CN 101888349 A CN101888349 A CN 101888349A CN 2009100510978 A CN2009100510978 A CN 2009100510978A CN 200910051097 A CN200910051097 A CN 200910051097A CN 101888349 A CN101888349 A CN 101888349A
- Authority
- CN
- China
- Prior art keywords
- module
- msn
- xmpp
- server
- interworking gateway
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种MSN与XMPP互通网关,包括:MSN机器人模块,外部模块,XMPP服务器端模块,XMPP客户端模块,生产者模块,消费者模块,消息缓存模块。本发明能够有效地实现MSN与XMPP网关的数据交互,有效地提高了不同即时通讯***间的信息传输效率,解决了不同***间的不兼容性问题。
Description
技术领域
本发明涉及一种MSN与XMPP互通网关,尤其涉及一种MSN与XMPP互通,IM通信中msn协议技术,会话xmpp技术的领域的网关技术领域。
背景技术
XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一,其他三种分别为:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)。
在这四种协议中,XMPP是最灵活的。XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布***和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好***添加功能。
IM是什么意思呢?IM是Instant Messaging的缩写,IM的中文意思是即时信息,指可以在线实时交流的工具,也就是通常所说的在线聊天工具,如QQ、MSN、新浪UC、TQ等都是互联网用户常用的IM聊天软件。后附常见即时信息IM软件下载地址即时信息(IM)早在1996年就开始流行了,当时最著名的即时通信工具为ICQ。ICQ最初由三个以色列人所开发,1998年被美国在线收购,现在仍然是最受欢迎的即时聊天工具之一。到2003年底,全球的ICQ用户数量超过15亿,其中60%以上分布在美国之外的世界各国。
IM即时信息有针对个人应用和企业应用的不同类型,目前占主导地位的是个人聊天工具,并且大多是免费服务的。目前常用的即时信息工具有国外的ICQ、Yahoo信使(Yahoo!Messenger)、MSN信使(MSN Messenger)、AOL即时信使(AIM)等,以及国内网站提供的即时信息聊天工具如腾迅公司的QQ、新浪UC等。此外,一个网站内部的在线用户之间的实时交流也是即时信息的一种具体应用形式。
发明内容:
本发明的目的在于针对以上传统技术的不足,提供一种MSN与XMPP互通的方法,能够实现MSN与XMPP之间互通。
为了实现这一目的机器人主要由如下模块组成:
MSN机器人模块,外部模块,XMPP服务器端模块,XMPP客户端模块,生产者模块,消费者模块,消息缓存模块。
MSN机器人模块包括NIO模块,NS服务器模块,SB服务器模块,MSN协议模块,菜单***模块,用户绑定模块,用户信息查询模块,队列连接器模块,MSN协议转换器模块,用于与XMPP服务器端模块的数据传输和转换,外部模块数据的传输。
外部模块包括MSN服务器模块,MSN客户端模块,用于MSN客户与MSN机器人模块的数据交互。
XMPP服务器端模块包括客户端连接器模块,用户登陆模块,在线状态模块,消息转发模块,用户头像模块,数据缓存模块,用户数据模块,XMPP协议转换器模块,用于与MSN机器人模块的数据传输和转换,XMPP客户端模块的数据交互。
生产者模块,消费者模块,消息缓存模块用于对两个不同IM间交换数据时对数据备份。
XMPP客户端模块包括服务器连接器(flex)模块,XMPP协议解释器模块,用户在线状态模块,消息***模块,头像模块,用于与客户端的数据交互,Javascript与flex通信模块,用户界面模块,用于与客户进行数据交互。
当用户在MSN客户端与XMPP端的用户进行通信时,MSN服务器将相关的数据传输给MSN机器人,MSN机器人接收到从MSN客户端的请求后将相关的数据传输到XMPP服务器端,XMPP接收到从MSN机器人传输来的数据用XMPP协议转换器将数据转换成XMPP***能识别的数据并将相关的数据进行处理转发到XMPP客户端。
反之亦然。
Flex:
1、在页面上实现具备类似IM客户端功能的聊天工具。采用页面嵌入FLASH程序,来完成客户端浏览器与服务器端的通信,页面与FLASH交互是JS来完成的。
2、面对同时在线2万用户,倘若使用AJAX技术,去定时刷新好友状态以及各种收到的消息,在整个运行过程中,客户端不断地发送请求,以保证客户端数据的即时更新,这样会对服务器造成相当大的压力,使服务器的性能极具下降。
3、采用FLASH建立socket直接与服务器通信,由于服务器采用分布式架构,就算同时在线再多的用户,***也会将客户与服务器之间的通信带来的负载分配达到均衡,而不会出现过载情况。
4、通过FLASH建立socket连接,客户端程序实时的监听服务器端发来的消息,实时性可以得到保证。
5、同时FLASH兼容性好:由于通过了唯一的FlashPlayer“代理”。人们不必像调试JS那样,在不同的浏览器中调试程序。用户只需安装FlashPlayer,就可以使用我们的页面聊天工具了。无需考虑浏览器之间的兼容性。
通信:
1、采用NIO非阻塞通信模型实现底层通信层,相比传统的io,免去了创建很多线程去死等流的进入,而是采用观察着模式,无论是建立连接、有数据进入,都会及时告之;***一旦接到通知,就会在线程池中取出空闲的线程进行处理。
2、消息转换器根据MSN协议,对其消息进行解析,封装成自己***内制定的消息。
3、消息转化后放入消息队列,这样做的好处是具备缓冲作用,消息队列还具备持久化功能,一旦***崩溃了,消息队列里面的消息尚在,能够即时恢复***的原先状态。
4、业务处理器,会有个主线程,不断的去扫描消息队列,一旦有消息进入,就会根据具体的消息类型创建执行单元,然后放入线程池中执行。
本发明能够有效地实现MSN与XMPP网关的数据交互,有效地提高了不同即时通讯***间的信息传输效率,解决了不同***间的不兼容性问题。
附图说明
图1为一种MSN与XMPP互通网关的模块结构图;
图2为一种MSN与XMPP互通网关的业务流程图。
具体实施方式
为了实现该***,***由以下结构组成:
MSN机器人模块,外部模块,XMPP服务器端模块,XMPP客户端模块,生产者模块,消费者模块,消息缓存模块。
MSN机器人模块包括NIO模块,NS服务器模块,SB服务器模块,MSN协议模块,菜单***模块,用户绑定模块,用户信息查询模块,队列连接器模块,MSN协议转换器模块,用于与XMPP服务器端模块的数据传输和转换,外部模块数据的传输。
外部模块包括MSN服务器模块,MSN客户端模块,用于MSN客户与MSN机器人模块的数据交互。
XMPP服务器端模块包括客户端连接器模块,用户登陆模块,在线状态模块,消息转发模块,用户头像模块,数据缓存模块,用户数据模块,XMPP协议转换器模块,用于与MSN机器人模块的数据传输和转换,XMPP客户端模块的数据交互。
生产者模块,消费者模块,消息缓存模块用于对两个不同IM间交换数据时对数据备份。
XMPP客户端模块包括服务器连接器(flex)模块,XMPP协议解释器模块,用户在线状态模块,消息***模块,头像模块,用于与客户端的数据交互,Javascript与flex通信模块,用户界面模块,用于与客户进行数据交互。(附图1).
假设有以下两个用户:
用户A,用户B均是我们的注册用户,且互为好友。
用户A在我们网站绑定了他的MSN账号,用户B在我们网站绑定了他的XMPP账号。
当用户A与用户B发送一条消息时,消息的所经的途径如下:MSN客户端接收的数据并打包传送给MSN服务器,MSN服务器将数据传输给MSN机器人,MSN机器人用队列连接器将不同MSN服务器端发送来的数据标示排列并处理与分发,当识别到与用户B的数据时MSN机器人将数据打包传送给XMPP服务器端,并将所传送的数据备份。XMPP服务器接收到MSN机器人传送来的数据将数据包解包用XMPP协议转换器将数据转换成XMPP服务器能识别的数据并分发到XMPP所在的客户端实现A与B的会话。
具体的业务流程如下:
假如有用户A和用户B都是注册我们***的用户,现在他们想通过我们的***进行聊天,则用户A在浏览器中打开一个对话框,在所展现的浏览器中用户A输入并发送消息给B,XMPP服务器接受用户A发送的消息,***判断用户B是否为在线状态,如果用户B没有在线***就丢弃该消息,如果用户B在线,***将通过网关传输用户A发送的数据,即***解释XMPP协议并转化为XML数据格式进入队列服务器传输,当用户B所在的***接收到来自用户A发送给用户B的消息时,自动解析XML数据格式并转化为MSN协议,并判断用户B当前是否在线,如果没有则丢弃该消息,如果用户B在线则判断是否存在用户B的会话连接,如果存在则发送消息给用户实现与用户B的会话,如果没有则创建一个与用户B的会话连接,而后发送消息给用户B实现与用户B的会话(附图2),反之亦然。
Claims (10)
1.一种MSN与XMPP互通网关,其特征在于包括,MSN机器人模块,外部模块,XMPP服务器端模块,XMPP客户端模块,生产者模块,消费者模块,消息缓存模块。
2.根据权利要1一种MSN与XMPP互通网关,所述MSN机器人模块,其特征在于包括,队列连接器模块,菜单***模块,用户绑定模块,用户信息查询模块,NIO模块,NS服务器模块,SB服务器模块,MSN协议模块,MSN协议转换器模块。
3.根据权利要1一种MSN与XMPP互通网关,所述外部模块,其特征在于包括MSN服务器模块,MSN客户端模块。
4.根据权利要1一种MSN与XMPP互通网关,所述XMPP服务器端模块,其特征在于包括XMPP协议转换器模块,客户端连接器模块,用户登陆模块,在线状态模块,消息转发模块,用户头像模块,数据缓存模块,用户数据模块。
5.根据权利要1一种MSN与XMPP互通网关,所述XMPP客户端模块,其特征在于包括服务器连接器(flex)模块,XMPP协议解释器模块,在线状态模块,消息***模块,头像模块,Javascript与flex通信模块,用户界面模块。
6.根据权利要1一种MSN与XMPP互通网关,所述XMPP协议,其特征在于应用的工具为IM。
7.根据权利要1或2或6一种MSN与XMPP互通网关,所述IM工具,其特征在于包括QQ,新浪UC,TQ,MSN中的一种或多种在线实时交流工具。
8.根据权利要1一种MSN与XMPP互通网关,所述服务器连接器(flex),其特征在于页面嵌入FLASH程序,完成客户端浏览器与服务器端的通信。
9.根据权利要1一种MSN与XMPP互通网关,所述服务器连接器(flex),其特征在于FLASH建立socket连接,直接和服务器通信,客户端程序实时监听服务器端发来的消息。
10.根据权利要1一种MSN与XMPP互通网关,所述服务器连接器(flex),其特征在于FLASH采用FlashPlayer唯一代理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100510978A CN101888349A (zh) | 2009-05-13 | 2009-05-13 | 一种msn与xmpp互通网关 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100510978A CN101888349A (zh) | 2009-05-13 | 2009-05-13 | 一种msn与xmpp互通网关 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101888349A true CN101888349A (zh) | 2010-11-17 |
Family
ID=43074074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100510978A Pending CN101888349A (zh) | 2009-05-13 | 2009-05-13 | 一种msn与xmpp互通网关 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101888349A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413191A (zh) * | 2011-12-30 | 2012-04-11 | 深圳市旗瀚软件有限公司 | 一种基于浏览器的web即时通讯方法 |
CN102571799A (zh) * | 2012-01-17 | 2012-07-11 | 深圳市乐唯科技开发有限公司 | 一种实现服务器扩展的***及方法 |
WO2013113150A1 (zh) * | 2012-01-31 | 2013-08-08 | 华为技术有限公司 | 缓存优化的方法、缓存器和缓存优化的*** |
CN103457828A (zh) * | 2012-06-05 | 2013-12-18 | 深圳中兴网信科技有限公司 | 一种跨网的即时通讯方法及*** |
CN103841141A (zh) * | 2012-11-23 | 2014-06-04 | 腾讯科技(深圳)有限公司 | 一种多媒体通信***和方法 |
CN104243271A (zh) * | 2013-06-09 | 2014-12-24 | 深圳中兴网信科技有限公司 | 一种通过xmpp实现离线消息推送的方法及*** |
CN107239343A (zh) * | 2017-06-02 | 2017-10-10 | 浪潮金融信息技术有限公司 | 数据处理方法及装置 |
CN108123868A (zh) * | 2017-12-20 | 2018-06-05 | 家园网络科技有限公司 | 通信***、方法、装置及服务终端 |
CN111314201A (zh) * | 2018-12-11 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种应用数据处理方法、***及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101083534A (zh) * | 2006-06-02 | 2007-12-05 | 阿里巴巴公司 | 一种通过浏览器实现即时通信的方法及*** |
CN101119327A (zh) * | 2006-08-04 | 2008-02-06 | 陆悦 | 一种即时聊天实现***和方法 |
CN100473064C (zh) * | 2004-07-08 | 2009-03-25 | 腾讯科技(深圳)有限公司 | 一种在网页上直接与即时通信***交互信息的方法 |
CN101415010A (zh) * | 2008-11-26 | 2009-04-22 | 涂彦晖 | Web浏览装置及其操作方法 |
-
2009
- 2009-05-13 CN CN2009100510978A patent/CN101888349A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100473064C (zh) * | 2004-07-08 | 2009-03-25 | 腾讯科技(深圳)有限公司 | 一种在网页上直接与即时通信***交互信息的方法 |
CN101083534A (zh) * | 2006-06-02 | 2007-12-05 | 阿里巴巴公司 | 一种通过浏览器实现即时通信的方法及*** |
CN101119327A (zh) * | 2006-08-04 | 2008-02-06 | 陆悦 | 一种即时聊天实现***和方法 |
CN101415010A (zh) * | 2008-11-26 | 2009-04-22 | 涂彦晖 | Web浏览装置及其操作方法 |
Non-Patent Citations (1)
Title |
---|
樊燕红等: "基于XMPP的即时通信网关应用研究", 《计算机技术与应用》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413191B (zh) * | 2011-12-30 | 2014-09-24 | 广东华邦技术软件有限公司 | 一种基于浏览器的web即时通讯方法 |
CN102413191A (zh) * | 2011-12-30 | 2012-04-11 | 深圳市旗瀚软件有限公司 | 一种基于浏览器的web即时通讯方法 |
CN102571799A (zh) * | 2012-01-17 | 2012-07-11 | 深圳市乐唯科技开发有限公司 | 一种实现服务器扩展的***及方法 |
WO2013113150A1 (zh) * | 2012-01-31 | 2013-08-08 | 华为技术有限公司 | 缓存优化的方法、缓存器和缓存优化的*** |
CN103416027A (zh) * | 2012-01-31 | 2013-11-27 | 华为技术有限公司 | 缓存优化的方法、缓存器和缓存优化的*** |
CN103416027B (zh) * | 2012-01-31 | 2017-06-20 | 华为技术有限公司 | 缓存优化的方法、缓存器和缓存优化的*** |
CN103457828A (zh) * | 2012-06-05 | 2013-12-18 | 深圳中兴网信科技有限公司 | 一种跨网的即时通讯方法及*** |
CN103457828B (zh) * | 2012-06-05 | 2018-04-06 | 深圳中兴网信科技有限公司 | 一种跨网的即时通讯方法及*** |
CN103841141A (zh) * | 2012-11-23 | 2014-06-04 | 腾讯科技(深圳)有限公司 | 一种多媒体通信***和方法 |
CN103841141B (zh) * | 2012-11-23 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 一种多媒体通信***和方法 |
CN104243271A (zh) * | 2013-06-09 | 2014-12-24 | 深圳中兴网信科技有限公司 | 一种通过xmpp实现离线消息推送的方法及*** |
CN104243271B (zh) * | 2013-06-09 | 2018-04-03 | 深圳中兴网信科技有限公司 | 一种通过xmpp实现离线消息推送的方法及*** |
CN107239343A (zh) * | 2017-06-02 | 2017-10-10 | 浪潮金融信息技术有限公司 | 数据处理方法及装置 |
CN107239343B (zh) * | 2017-06-02 | 2020-10-16 | 浪潮金融信息技术有限公司 | 数据处理方法及装置 |
CN108123868A (zh) * | 2017-12-20 | 2018-06-05 | 家园网络科技有限公司 | 通信***、方法、装置及服务终端 |
CN111314201A (zh) * | 2018-12-11 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种应用数据处理方法、***及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101888349A (zh) | 一种msn与xmpp互通网关 | |
US7958188B2 (en) | Transaction-initiated batch processing | |
KR101159364B1 (ko) | 분산형 애플리케이션의 객체 지향 표현과 서비스 지향 표현 간의 매핑 | |
CN104486440B (zh) | 一种基于消息总线的云计算管理软件交互方法 | |
US20090287761A1 (en) | Cached message distribution via http redirects | |
CN101488926A (zh) | 一种基于xmpp协议和sms服务的网络消息通讯方法 | |
CN102006245B (zh) | 一种数据交换和共享平台 | |
KR101834837B1 (ko) | MQTT와 KAFKA를 이용한 IoT 센서 시뮬레이터 시스템 | |
CN101651698A (zh) | 基于nio和io的面向发布订阅***的传输方法 | |
CN102394867A (zh) | 网络并发通讯请求转串行队列技术 | |
CN103139051A (zh) | 一种基于Websocket协议的即时通讯方法 | |
CN107231290A (zh) | 一种即时通信方法和*** | |
CN102833080A (zh) | 一种应用软件的进程间通信方法和*** | |
JP2003178222A (ja) | ビジネスプロトコル間のデータ変換方法および装置並びにその処理プログラム | |
CN100450105C (zh) | 一种基于java消息服务的同步消息接口实现方法 | |
CN101373428A (zh) | 中间件的整合*** | |
JP2009123201A (ja) | データを処理するためのサーバ‐プロセッサ・ハイブリッド・システムおよび方法 | |
US20080133669A1 (en) | Sending and receiving electronic mail using group headers | |
CN109302340A (zh) | 一种埋点数据上报方法、装置及计算机可读存储介质 | |
US20090132582A1 (en) | Processor-server hybrid system for processing data | |
CN101499031A (zh) | 软件错误反馈***及方法 | |
JP5517255B2 (ja) | 複数のサービスノードサーバにおけるサービス連結制御方法、制御ノードサーバ及びプログラム | |
CN111711675A (zh) | 一种针对局域网内并发消息传递的解决方法 | |
JP2014026480A (ja) | 複数の情報システムおける出力比較方法 | |
CN101795237A (zh) | 基于数据交换的工作流整合方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20160511 |
|
C20 | Patent right or utility model deemed to be abandoned or is abandoned |