IM技术全称InstantMessaging,中文翻译“即时通讯”,它是一种使人们能在网上识别在线用户并与他们实时交换消息的技术,是电子邮件发明以来迅速崛起的在线通讯方式。IM的出现和互联网有着密不可分的关系,IM完全基于TCP/IP网络协议族实现,而TCP/IP协议族则是整个互联网得以实现的技术基础。最早出现即时通讯协议是IRC(InternetRelayChat),但是可惜的是它仅能单纯的使用文字、符号的方式通过互联网进行交谈和沟通。随着互连网变得高度发达,即时通讯也变得远不止聊天这么简单,自1996年第一个IM产品ICQ发明后,IM的技术和功能也开始基本成型,语音、视频、文件共享、短信发送等高级信息交换功能都可以在IM工具上实现,于是功能强大的IM软件便足以搭建一个完整的通信交流平台。目前最具代表性的几款的IM通讯软件有MSN、GoogleTalk、YahooMessenger、腾讯QQ等。
典型的IM工作方式如下:登陆IM通讯中心(IM通讯服务器),获取一个自建立的历史的交流对象列表(好友列表),然后自身标志为在线状态,当好友列表中的某人在任何时候登录上线并试图通过你的计算机联系你时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话通道进行各种消息如键入文字、通过语音等的交流。
第一步,用户A输入自己的用户名和密码登录IM服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在IM系统中的状态为在线(OnlinePresence)。
第二步,根据用户A存储在IM服务器上的好友列表(BuddyList),服务器将用户A在线的相关信息发送给也同时在线的IM好友的PC机,这些信息包括在线状态、IP地址、IM客户端使用的TCP端口(Port)号等,IM好友的客户端收到此信息后将在予以提示。
IM电竞,IM电竞官网,IM电竞注册,电竞投注平台,电竞博彩,英雄联盟竞猜
第三步是IM服务器把用户A存储在服务器上的好友列表及相关信息回送到他的客户端机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的IM客户端收到后将显示这些好友列表及其在线在线直接通讯
如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不再IM服务器中转,而是直接通过网络进行点对点的通讯,即对等通讯方式(PeerToPeer)。
用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢,IM服务器将会主动提供消息中转服务,即用户A和用户B的即时消息全部先发送到IM服务器,再由服务器转发给对方。
用户A与用户B由于各种原因不能同时在线的时候,如此时A向B发送消息,IM服务器可以主动寄存A用户的消息,到B用户下一次登陆的时候,自动将消息转发给B。
用户A可以通过IM服务器将信息以扩展的方式传递给B,如短信发送方式发送到B的手机,传真发送方式传递给B的电话机,以email的方式传递给B的电子邮箱等。
早期的IM系统,在IM客户端和IM服务器之间通讯采用UDP协议,UDP协议是不可靠的传输协议,而在IM客户端之间的直接通讯中,采用具备可靠传输能力的TCP协议。随着用户需求和技术环境的发展,目前主流的IM系统倾向于在IM客户端之间、IM客户端和IM服务器之间都采用TCP协议。
即时通讯相对于其他通讯方式如电话、传真、email等的最大优势就是消息传达的即时性和精确性,只要消息传递双方均在网络上可以互通,使用即时通讯软件传递消息,传递延时仅为1秒种
传统的IM在统治了互联网即时通讯领域长达十年之久,以其日趋稳定的性能,与较强的用户黏着度,至今仍统治着这个巨大的市场。然而,软件行业的技术精英们,并不满足于此。他们厚积薄发,一直致力于开发出性能更为优越的即时通讯工具。当然,在功能上的不断完善,自然是一个必然的发展方向,在Web2.0时代,如何大力增强用户对网站(http:\/\/.mikel\/tag\/%e7%bd%91%e7%ab%99\o网站\t_blank)的黏着度,而不仅仅是对于IM的拥附,已经成为他们的主攻方向了。于是,嵌入式IM工具,应运而生了。
于是,目前,一种新型的嵌入式IM工具就应运而生了。这种IM工具,不需要下载安装,当用户登陆网页后,该IM直接嵌套在网页中,可以直接使用。
而在功能上,则一点也不输于传统的IM,无论是传统的文字沟通的速度与效率,还是近年来越来越成为IM工具必备的音频/视频功能,这种嵌入式IM都能提供非常稳定的传输。更值得一提的是,因为嵌入式IM是嵌套在网页上的,软件供应商,可以根据网站需求,设计出适合网站风格的IM产品。而不是像传统的IM工具,千篇一律,毫无个性可言。
目前,这类嵌入式IM在社区、交友、社团及协作等类型的网站上,应用已经较为广泛。在Web2.0时代,将发挥越来越重要的作用。
IM(InstantMessaging)正在被广泛地采用,特别是在公司与它们的客户互动联接方案上。为了解决即时通讯的标准问题,IETF成立了专门的工作小组,研究和开发与IM相关的协议。
目前IM有四种协议:即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM)、针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)以及XMPP。PRIM与XMPP、SIMPLE类似,但已经不再使用了。
IMPP主要定义必要的协议和数据格式,用来构建一个具有空间接收、发布能力的即时信息系统。到目前为止,这个组织已经出版了三个草案RFC,但主要的有两个:一个是针对站点空间和即时通讯模型的(RFC 2778);另一个是针对即时通讯/空间协议需求条件的(RFC2779)。RFC2778是一个资料性质的草案,定义了所有presence和IM服务 的原理。RFC2779定义了IMPP的最小需求条件。另外,这个草案还就presence服务定义了一些条款,如运行的命令、信息的格式,以及 presence服务器如何把presence的状态变化通知给客户。
SIMPLE是目前为止制定的 较为完善的一个。SIMPLE和XMPP两个协议,都符合RFC2778和RFC2779 。SIMPLE计划利用SIP来发送presence信息。SIP是IETF中为终端制定的协议。SIP一般考虑用在建立语音通话中,一旦连接以后,依靠 如实时协议(RTP)来进行实际上的语音发送。但SIP不仅仅能被用在语音中,也可以用于视频。SIMPLE被定义为建立一个IM进程的方法。 SIMPLE在2002年夏季得到额外的信任,目前,微软和IBM都致力于在它们的即时通讯系统中实现这个协议。
SIMPLE小组致力于进程模式 的操作,这将提升运行效率,使基于SIP的机制能够进行会议和三方电话交谈控制,也考虑到能和未来提供的许多新特性实现兼容并提升表现能力。有了进程模 式,SIMPLE使用SIP来建立一次进程,再利用SDP(进程描述协议)来实际传输IM数据。
SIP(Session Initiation Protocol)协议是由IETF提出的一种用于IP网络多媒体通信的应用层控制协议,其主要功能是创建、修改、终结和管理多媒体会话或呼叫,SIP协 议的语法和语义在很大程度上借鉴了SMTP和HTTP的机制,使用C/S通信模式以及文本形式的消息编码。本质上,SIP提供以下功能:①名字翻译和用户 定位:无论被呼叫方在哪里都确保呼叫达到被叫方;执行所有描述信息到定位信息的映射;确保呼叫(会话)的本质细节被支持。②特征协商:它允许与呼叫有关的 组在支持的特征上达成一致。③呼叫参与者管理:呼叫中参与者能够引入其他用户加入呼叫或取消到其他用户的连接,支持呼叫转移和呼叫保持。④呼叫特征改变: 用户能够改变呼叫过程中的呼叫特征。例如,某次呼叫开始时被置为voice2only,但用户可以在呼叫过程中按需开启视频功能,新加入呼叫的第三方 也可以开启不同的特征。
多数即时消息和出席检测架构可以不加修改地利用SIP中已有的特性。例如,一个IM客户机向SIP注册服务器发送 REGISTER消息,通知它可以接收IM,注册服务器采用与SIP系统中其他规则相同的方法来处理登录请求。不过, SIP缺乏消息路由机制,不完全符合IMPP,还需对其进行一定的扩展,目前SIMPLE工作组已经提交了3项RFC和17项草案。SIMPLE在本质上 与SIP相同,没有采用GET和POST等数据存取方法,而采用INV ITE和BYE等信令方法来启动和结束一次呼叫或会话。SIMPLE增加了一种称为MESSAGE的新的请求方法来发送一次性的短消息,即寻呼机模式的 IM;用SUBSCR IBE发送对出席消息的询问,用NOTIFY传输出席消息。在持续较长的IM会话中,参与者在一段时间内交换多条消息,这时就要用到INV ITE信令和一种称为消息会话中继协议(MSRP)的传输协议;文本通过MSRP传输,话音和视频数据则和其他SIP应用一样用RTP来传输。
XMPP 是一种基于XML的协议,它继承了在XML环境中灵活的发展性。这表明XMPP是可扩展的。可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶 端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应 用程序或给一个配好系统添加功能。
XMPP目前在免费源代码开放Jabber IM系统中被广泛采用。2002年,这个产品有超过5万的下载量。XMPP拥有成千的Jabber开发者,以及大约数万台配置的服务器和超过百万的终端用户。
在XMPP能够成为标准前,还需要努力克服它本身的缺点。对于网络协同工作者而言,需要加强安全性和互连性。
XMPP(Extensible Messaging and Presence Protocol,可扩展的消息和出席协议)是一种基于XML的传递出席信息(Presence)和消息路由的协议,它为不同的网络之间互联提供了一种安 全而简单的编程语言,是Jabber系统(一种开放源代码的IM系统)的基础,IETF成立了XMPP工作组并已发布了若干项草案。XMPP路由的核心是 一种类似于电子邮件的逻辑编址方案,在Jabber系统中,这一地址被称为Jabber ID,其形式为urce (mailto:\/resource)。 XMPP的工作方式也与简单邮件传输协议(SMTP)相似,地址中的域(有相应的服务器)可以用普通的DNS系统来解析,由服务器来转发用户的消息。与 SMTP不同的是,节点(node)部分既可以表示用户,也可以表示应用或服务;resource是连接识别标记,允许同一个客户在同一个时刻多次登录服 务器。当节点连接到一台服务器时,它们利用来自本地目录系统的证书进行鉴权、指定资源并通知服务器向订阅者(比如说列在好友名单上的用户)发出出席公告。 服务器之间能相互发现、连接和认证,不管某节点的本地服务器(域)是什么,只要不违反保密或业务规则,它都可以通过服务器的转接而连接到XMPP社区中的 任意其他节点。
每个XMPP节(stanza)都是标有JID地址的XML结构化数据块,节的类型可以通过恰当的命名空间XML结构化数据加以扩 展。正如W3C是Web格式的标准化主体,Jabber软件基金(JSF)是XMPP节类型扩展的标准化主体,不过,任何其他组织都可以按需确定事实上的 标准格式。XMPP将出席(Presence)和相关的消息嵌入XML 结构化数据之中,使之能有效地路由至最合适的资源,起到了通用的XML结构化数据传输层的作用,这种层次结构最大程度地简化了客户端的实现。JSF提供了 到其他IM系统的网关规范,只要网关支持,客户端就可以与其他IM系统交流。
综合考虑功能、扩展能力和成熟度等各方面特征,两种协议各有特色,其对比如表1 SIMPLE与XMPP协议的比较所示。
SIP 已经在网络电话等领域得到了较广泛的应用,出现了大量的产品和方案,对现有SIP系统进行一定的修改后就能支持SIMPLE , 这是SIMPLE最大的优势。从产业上看,微软已经选择SIP作为其实时通信策略并在WindowsXP,Pocket PC和MSN Messenger中进行了部署, IBM也在大力地推进SIP的应用。微软公司宣布其Live Communications Server 2005将使用户能够与雅虎,AOL的即时通信服务的用户互联互通,进一步增强了SIMPLE作为标准化IM协议的强势地位。
XMPP的优势在于 灵活和开放。它具有XML带来的与生俱来的扩展性,任何人都可以用扩展的XML 信息来处理客户的特殊要求并在XMPP基础上构建新的应用。例如, CRM或别的企业应用系统可以作为一个XMPP的客户端注册到服务器上,在管理员许可的前提下,用户或别的应用能发现CRM的状态并向其发送数据、对其进 行操作。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。由于XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火 墙的阻碍。从产业上看, XMPP起源于开放源代码的Jabber系统,现在已有了大量使用该协议的IM系统,目前SUN和Oracle已经在它们的IM系统中使用XMPP,而 Google也可能在其IM系统中使用这一协议。
SIMPLE和XMPP各有其优势,前者有较成熟的应用基础和主流IM服务商的支持,在未来一段 时间内可能会成为主要的标准化IM协议;后者发挥了XML的优势,随着XML的发展,它的应用会越来越普及。在相当的一段时间内仍会出现两种标准系统共存 的状况,所以这两种系统之间的互联就成了一个新的问题。不过, XMPP支持网关扩展,用XMPP2SIP网关可以实现两类系统间的互联。
如ActiveX,插件相对稳定,但插件需要用户自己允许并下载安装,而大多数用户担心安装了黑客软件或插件对计算机系统不好而不愿意安装,并且上网助手等软件也拦截插件,导致很多用户无法使用。另外,ActiveX受平台限制,只能在IE下使用。
循 环的面向连接的方式 调试、编程、维护、修改容易 1.服务器一次只能处理一个客户机的请求,可能造成客户端请求的拒绝或响应变慢;2.客户机无法知道服 务器是否收到了其它客户机发给它的信息;3.服务器对客户机的处理是按照连接请求的先后顺序进行,与一个客户机的通讯故障可能对后续客户造成影响。
多进程并发方式 并行化、简单有序、互不干扰、事务化 1.创建进程需要一定的时间开销;2.考虑如何实现多个进程之间的互不干扰;3.占用较多的系统资源
多线程并发方式 除了具有多进程并发方式的优点外,与多进程相比:1.线.创建时的时间开销小;3.减小了对服务器资源的消耗 1.需要采用同步机制实现多个线.程序的编写、调试、维护难度大
是国内最为流行的聊天工具QQ的网页式聊天工具,国外没有相关的服务是提供给QQ的,马化腾不失时机地做了基于Web浏览器的IM服务,所谓是web2.0的大势所趋。
目前Web QQ同样在测试阶段,只支持IE6.0的浏览器。其在线主界面保持了客户端QQ主界面的风格,在操作上可以使用快捷键;不提供聊天记录保存、语音视频聊天、文件传输等功能,纯属客户端QQ的精简版。
通 过试用发现,在线方式不支持视频聊天,也不能保存聊天记录;在线方式由于精简了功能,使得聊天窗口弹出及具体的文字聊天速率较理想;对浏览器的支持较好, 适用于IE5.0或更高版本、Netscape 7.1 或更高版本、Mozilla1.6或更高版本、Maxthon1.5或更高版本等。
即 时消息是Windows Messenger中的一种通信和协作的模式。IM对话中使用的初始化和通信协议依所选择的服务器或服务而定。对于Messenger或Exchange IM,IM文本是通过TCP连接进行传送的。当使用SIP Proxy服务器时,可以对服务器进行配置,以使用TCP UDP或安全套接层(Secure Sockets Layer,SSL)–贯穿TCP的安全协议–传输IM文本。
发起对话的客户向服务器发送一个请求,邀请与联系人开始对话。在服务器将邀请发送到联系人后,就可以进行IM通信了。
消 息文本通过服务器发送给对方。消息文本的定义依采用的服务器和协议而不同,通常为HTTP消息,由服务器将其封装在TCP连接中,内部包含超文本传输协 议(Hypertext Transfer Protocol,HTTP)或可扩展标记语言(Extensible Markup Language,XML)。当使用SIP IM时,可以设置在同级之间直接传送消息文本。但是采用SIP Proxy服务器的话,就需要对服务器进行配置。
在此在线IM方式中,同样不能实现网络通话功能(需通过下载Google Talk 客户端实现);电子邮件和即时聊天在同一页面完成,方便快捷;在浏览器支持方面做得不够,适用于IE 6.0 以上和 Firefox 1.0 以上版本。最有特色的是其聊天记录的保存和直接回复功能。
iframe 是很早就存在的一种 HTML 标记, 通过在 HTML 页面里嵌入一个隐蔵帧,然后将这个隐蔵帧的 src属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。
从 图 3 可以看到,每次数据传送不会关闭连接,连接只会在通信出现错误时,或是连接重建时关闭(一些防火墙常被设置为丢弃过长的连接, 服务器端可以设置一个超时时间, 超时后通知客户端重新建立连接,并关闭原来的连接)。
sigslot是一个线程安全、类型安全,用C++实现的sig/slot机制(sig/slot机制就是对象之间发送和接收消息的机制)的开源代码库
从登录速度上,网页版网易POPO是最快的,基本上瞬间就可登录到使用界面。同样地,它也不能实现多媒体聊天功能;而且也不能保存聊天记录;未提供好友删除及好友分组的管理功能;适用于各版本浏览器。
vqq-vqq围围圈是一款国内在线聊天室,分免费和VIP付费两种方式。提供自定义图标的功能非常新颖。
功能特点:提供widget,把VQQ围圈圈聊天窗口嵌入在你自己的网页,自定义风格丰富,widget演示-点击rorol网页右下角的绿色图标展开聊天室。