Web IM技术简介

Web IM的特性:无需安装客户端,穿透防火墙,与社区的紧密结合

Web IM的应用:社区用户的交流,在线客服,CRM。

Web IM实现技术
Web IM的实现技术主要有:

基于插件的技术:如ActiveX,插件相对稳定,但插件需要用户自己允许并下载安装,而大多数用户担心安装了黑客软件或插件对计算机系统不好而不愿意安装,并且上网助手等软件也拦截插件,导致很多用户无法使用。另外,ActiveX受平台限制,只能在IE下使用。


基于Flash的技术:典型的如Yahoo web messenger,结合Flash和Ajax;Google Talk Gadget


纯粹的基于HTTP的技术:


前端使用Ajax的Web IM:meebo, ebuddy, ILoveIm, MSN Web Messenger, KoolIM等。

后台使用comet的Web IM:meebo, gtalk等。

支持wap的有ebuddy, Yahoo Web Messenger, MSN Web Messenger, Google Talk, Mabber, AIM Express (Web Messengers Handbook)


Web IM
1. 国内有独立IM的Web版:Web Popo, WebQQ, 也有与论坛等结合的IM:sohu小纸条,新浪“纸条箱”,QQ空间“小纸条”,淘宝旺旺等,

2. 国外:基于上都是独立IM的Web版。或者集成多种IM的Web版,如meebo, flcikim, ebuddy等。

相关技术
Comet (Server-Push)
Comet技术的一个重要组成部分就是event-drived web server,目前商用的实现已经出现,如lightstreamer,Lightstreamer Dojo Demo:http://app.lightstreamer.com/DojoDemo/

  
几个开源的支持Comet的Library。

Orbited :一种开源的分布式Comet服务器
AjaxMessaging :Ruby on Rails的Comet插件
Pushlets :一个开源框架,可以让服务器端java对象推送事件到浏览器端javascript,java applet,或者flash应用程序
Lightstreamer :提供基于AJAX-COMET模式的HTTP流的商业实现
Pjax :Ajax的推送技术
Scalability(可伸缩性,可扩展性)
Because Comet applications send events in real time, they typically use more resources than other types of web applications, making them more difficult to scale (grow to support large numbers of users).

Comet relies on continually keeping at least one server–client connection open for each client. Traditional web servers, designed for the page-by-page application architecture, cannot cope with such large numbers of open connections. This is a vertical scalability problem: it is difficult to handle many users on each server.
Additionally, because Comet applications are often interactive, allowing arbitrary groups of users to communicate with each-other, splitting tasks among servers is more difficult than for applications in which each user acts independently. This is a horizontal scalability problem: it is difficult to add more servers to the application.
Comet在可伸缩性上的提升:

性能:After some recent optimizations, the Dojo Cometd implementation of the Bayeux protocol running on the Jetty web server can now handle up to 20,000 simultaneous users per server while maintaining sub-second latency.

测试环境:mid-sized Amazon EC2 virtual servers: 7.5 GB of memory, 2×2 EC2 Compute Units, 64-bit platform running Ubuntu 7.10 and Sun JVM 1.5.0_13. A single virtual machine was used as the Cometd server and between 1 and 3 virtual machines were used to generate the load of 20,000 clients.

DWR
DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码)。

posted @ 2011-04-12 23:14  颜骨柳筋才大如海  阅读(1829)  评论(0编辑  收藏  举报