- 浏览: 1010265 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (394)
- OSGI (14)
- 多线程 (10)
- 数据库 (30)
- J2ME (1)
- JAVA基础知识 (46)
- 引用包 (1)
- 设计模式 (7)
- 工作流 (2)
- Ubuntu (7)
- 搜索引擎 (6)
- QT (2)
- Ubuntu下编程 (1)
- 小程序 (2)
- UML (1)
- Servlet (10)
- spring (16)
- IM (12)
- 文档视频转为flash格式在线播放 (19)
- Maven (8)
- 远程调用 (2)
- PHPRPC (1)
- EXTJS学习 (2)
- Hibernate (16)
- 技术文章 (38)
- flex (5)
- 海量数据处理 (5)
- FTP (8)
- JS (10)
- Struts (1)
- hibernate search (13)
- JQuery (2)
- EMail (3)
- 算法 (4)
- SVN (7)
- JFreeChart (4)
- 面试 (4)
- 正规表达式 (2)
- 数据库性能优化 (10)
- JVM (6)
- Http Session Cookie (7)
- 网络 (12)
- Hadoop (2)
- 性能 (1)
最新评论
-
hy1235366:
能够随便也发一下,你退火算法程序使用的DistanceMatr ...
模拟退火算法总结(含例子)(转) -
梅强强:
感谢分享。。帮大忙了
swftools转换文件时线程堵塞问题的解决方法 -
wenlongsust:
openoffice和文件不在同一个服务器上,用过吗?
[JODConverter]word转pdf心得分享(转) -
2047699523:
如何在java Web项目中开发WebService接口htt ...
利用Java编写简单的WebService实例 -
abingpow:
唉,看起来好像很详细很不错的样子,可惜不是篇面向初学者的文章, ...
Spring与OSGi的整合(二)(转)
最近开始准备用Java开发QQ,由于在大四的时候曾经开发过一简单的QQ聊天机,现在想把它完善,使之尽量能够用于实际应用中。
在开发之前,自己想(推理)了一下QQ的工作原理和一些实现细节,发现自己想的、推理的和网上搜索到资料以及师兄的回答几乎一致。
下面就是我在网上所搜索的资料
一、IM技术概念
IM技术全称Instant Messaging,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。IM的出现和互联网有着密不可分的关系,IM完全基于TCP/IP网络协议族实现,而TCP/IP协议族则是整个互联网得以实现的技术基础。 最早出现即时通讯协议是IRC(Internet Relay Chat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互联网进行交谈和沟通。随着互连网变得高度发达,即时通讯也变得远不止聊天这么简单,自1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现,于是功能强大的IM软件便足以搭建一个完整的通信交流平台。目前最具代表性的几款的IM通讯软件有MSN、Google Talk、Yahoo、Messenger 、腾讯QQ等。
二、IM技术原理和工作方式
典型的IM工作方式如下:登陆IM通讯中心(IM通讯服务器),获取一个自建立的历史的交流对象列表(好友列表),然后自身标志为在线状态,当好友列表中的某人在任何时候登录上线并试图通过你的计算机联系你时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话通道进行各种消息如键入文字、通过语音等的交流, 从技术上来说,IM的基本技术原理如下: IM服务器 登陆或注销 登陆或注销 用户A通过列表找到B,用户B获得的消息并与之交谈 通过IM服务器指引建立与B单独的通讯通道 第一步,用户A输入自己的用户名和密码登录IM服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在IM系统中的状态为在线(Online Presence)。 第二步,根据用户A存储在IM服务器上的好友列表(Buddy List),服务器将用户A在线的相关信息发送给也同时在线的IM好友的PC机,这些信息包括在线状态、IP地址、IM客户端使用的TCP端口(Port)号等,IM好友的客户端收到此信息后将在予以提示。 第三步是IM服务器把用户A存储在服务器上的好友列表及相关信息回送到他的客户端机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的IM客户端收到后将显示这些好友列表及其在线状态。
三、IM通讯方式
1.在线直接通讯 如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不再IM服务器中转,而是直接通过网络进行点对点的通讯,即对等通讯方式(Peer To Peer)。
2.在线代理通讯 用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢,IM服务器将会主动提供消息中转服务,即用户A和用户B的即时消息全部先发送到IM服务器,再由服务器转发给对方。
3.离线代理通讯 用户A与用户B由于各种原因不能同时在线的时候,如此时A向B发送消息,IM服务器可以主动寄存A用户的消息,到B用户下一次登陆的时候,自动将消息转发给B。
4.扩展方式通讯 用户A可以通过IM服务器将信息以扩展的方式传递给B,如短信发送方式发送到B的手机,传真发送方式传递给B的电话机,以email的方式传递给B的电子邮箱等。 早期的IM系统,在IM客户端和IM服务器之间通讯采用UDP协议,UDP协议是不可靠的传输协议,而在IM客户端之间的直接通讯中,采用具备可靠传输能力的TCP协议。随着用户需求和技术环境的发展,目前主流的IM系统倾向于在IM客户端之间、IM客户端和IM服务器之间都采用TCP协议。 即时通讯相对于其他通讯方式如电话、传真、email等的最大优势就是消息传达的即时性和精确性,只要消息传递双方均在网络上可以互通,使用即时通讯软件传递消息,传递延时仅为1秒种
四、兴起的嵌入式IM工具。
传统的IM在统治了互联网即时通讯领域长达十年之久,以其日趋稳定的定能,与较强的用户黏着度,至今仍统治着这个巨大的市场。然而,软件行业的技术精英们,并不满足于此。他们厚积薄发,一直致力于开发出性能更为优越的即时通讯工具。当然,在功能上的不断完善,自然是一个必然的发展方向,在Web2.0时代,如何大力增强用户对网站的黏着度,而不仅仅是对于IM的拥附,已经成为他们的主攻方向了。于是,嵌入式IM工具,应运而生了。
相对以往的传统的即使沟通工具,它们需要用户下载软件包,需要用户进行安装。对于拥有IM产品的网站而言,用户在登陆网站后,不能直接使用其IM工具,对于流量与用户的黏着度,都是有一定影响的。因此在IM与网站相互依存的今天,没有哪家网络公司,愿意将IM工具孤立开来。 于是,目前,一种新型的嵌入式IM工具就应运而生了。这种IM工具,不需要下载安装,当用户登陆网页后,该IM直接嵌套在网页中,可以直接使用。
而在功能上,则一点也不输于传统的IM,无论是传统的文字沟通的速度与效率,还是近年来越来越成为IM工具必备的音频/视频功能,这种嵌入式IM都能提供非常稳定的传输。更值得一提的是,因为嵌入式IM是嵌套在网页上的,软件供应商,可以根据网站需求,设计出适合网站风格的IM产品。而不是像传统的IM工具,千篇一律,毫无个性可言。
目前,这类嵌入式IM在社区、交友、社团及协作等类型的网站上,应用已经较为广泛。在Web2.0时代,将发挥越来越重要的作用。
发表评论
-
提取html内容放入xml文件时空格问题
2011-05-24 17:09 2659由于项目的需要,将网站上的信息抓取下来,提取出想要的信息,然后 ... -
简述URI和URL区别(转)
2011-04-20 16:23 1418URL:(Uniform Resoure Locato ... -
jsp页面乱码解决方案及编码设置问题(转)
2011-03-27 15:46 1841经常遇到关于JSP页面乱码的问题,在网上也查了相关的帖子,故在 ... -
使用JSTL标签异常
2011-01-02 09:48 1850我使用JSTL标签,如下所示: <c:when ... -
HSQL入门及使用指南 (转)
2010-12-27 22:29 2191HSQL可以到官方网站 ... -
使用POI读取Word207和Excel2007的例子 (转)
2010-12-26 16:19 2618天在写全文检索功能时,POI读取Word2007和Excel2 ... -
SSH session连接关闭问题的解决(转)
2010-12-15 22:12 21532008-07-20 22:25:27,531 INF ... -
svn和myeclipse使用搜狗浏览器代理
2010-12-11 16:42 18141 在svn里的setting功能选项中选择Network,勾 ... -
Kissy Suggest 自动提示例子
2010-12-10 14:45 3822由淘宝团队开发出来的Kissy Suggest 自动提示组件是 ... -
计算机开机启动过程详解(转)
2010-12-10 13:22 13891、http://product.zdnet.com. ... -
更强的自动补全提示:提示补全组件:Kissy Suggest(转)
2010-12-09 16:25 1058去年针对谷歌的搜索提示,发过一篇文章:从谷歌的一个Bug说 ... -
磁盘分区与文件系统(转)
2010-12-09 09:38 2046一个磁盘是分成一个个扇区来存放信息,整个磁盘的第一个扇区是作 ... -
QQ通信原理(转)
2010-12-02 21:52 6659QQ通信原理我研究的是QQ ... -
邮件激活
2010-11-17 09:34 1457今天看了一下公司做的网站,看到有关邮件激活的程序,就做下笔记。 ... -
HttpSessionBindingListener获取在线用户数(转)
2010-11-01 14:59 2368下面为我的测试 ... -
cookie的简单使用
2010-10-29 11:13 1575一、cookie的作用 在 ... -
Cookie工作原理(转)
2010-10-29 09:30 1824Cookies基础 Cookies是 ... -
swfobject的使用
2010-10-26 09:54 32231 swfobject可以将swf文件嵌入到网页内,它是一个j ... -
java获取当前工程名(转)
2010-10-24 09:14 1628String projectname = System.get ... -
利用Java编写简单的WebService实例(转)
2010-10-22 15:30 2740/* * File name: TestHell ...
相关推荐
本文旨在用Delphi面向对象的方法实现P2P(Peer To Peer)(类QQ)会话系统。本文可作为学习P2P通信与面向对象程序设计的用例。 一、 通信组件:采用TIdUDPServer(属于Indy Servers组件板)。 二、 通信原理::利用P2P之...
QQ通信原理分析,为什么只要可以连上互联网的计算机都可以用QQ相互建立通信,而不需要固定IP
QQ是如何通信的,是如何交流的?QQ的通信交流原理。深入剖析QQ的运行机制
1. **QQ的IP获取原理**: - 当QQ进行文件传输、语音聊天、图片或自定义表情发送等操作时,需要知道接收方的IP地址和端口。因此,QQ内部包含了获取这些信息的函数。 - 反编译QQ组件如`CQQApplication.dll`,可以...
QQ通讯原理.doc QQ通讯原理.doc QQ通讯原理.doc QQ通讯原理.doc QQ通讯原理.doc
简单介绍QQ的文件传输原理和服务器架构等,对服务器认识有帮助
之前遇到过一个需求,要把别人导出的全部MHT格式的聊天记录读出来,结果网上找的一些MHT转HTML的工具都不支持大的MHT格式的聊天记录转换,查了一下MHT的存储方式原理挺简单,就自己写了个,测试转换10G的MHT文件没...
从Altium原理图迁移转换到Cadence高效方法 本文将讲述从Altium原理图迁移转换到Cadence OrCAD17.2的高效方法。该方法可以将Altium的原理图文件迁移转换进入OrCAD Capture 17.2,提供了一个快速、准确、高效的原理图...
文章介绍了QQ通信原理
QQ2440原理图是基于Protel设计软件制作的一款基于S3C2440处理器的硬件设计方案。Protel是一款广泛使用的电子设计自动化(EDA)软件,它集成了电路原理图设计、PCB布局、元器件库管理等多个功能,为电子工程师提供了...
QQ聊天程序的网络通信原理及编程
之前遇到过一个需求,要把别人导出的全部MHT格式的聊天记录读出来,结果网上找的一些MHT转HTML的工具都不支持大的MHT格式的聊天记录转换,查了一下MHT的存储方式原理挺简单,就自己写了个,测试转换10G的MHT文件没...
QQ2812原理图,为Protel格式文件,其包含一个ALC DAC输出,使用MAX3256CPLD,以及USB、232、485接口,是做电机控制的首选!
QQ的工作原理,本人正在学习网络通信,共享资源
"CS5801AN_HDMI to eDP/DP转换方案电路原理图" 该电路原理图是基于CS5801AN芯片的HDMI to eDP/DP转换方案,实现HDMI信号到eDP/DP信号的转换。该电路原理图主要由以下几个部分组成: 1. HDMI输入端口:该部分负责...
QQ协议分析文档主要涵盖了QQ(OICQ)通信过程中涉及的各种技术细节,包括数据包格式、常用命令以及加密解密的原理。QQ作为一款广泛使用的即时通讯软件,其背后的通信协议是实现用户间稳定、安全通信的基础。接下来,...
根据提供的信息,我们可以详细解析友善之臂公司...通过以上对QQ2440V3开发板原理图的详细分析,我们可以更深入地了解该开发板的工作原理及其各个组成部分的功能特性,这对于嵌入式系统的学习与开发具有重要的参考价值。
标题:“QQ拦截软键盘原理与实现” 描述:本文旨在深入探讨QQ软键盘拦截技术的原理与具体实现方式,通过对QQ2010版本的软键盘输入监控机制进行解析,为读者提供一个理解软键盘安全性和反监控技术的窗口。文章首先...