当前位置: 代码迷 >> Web前端 >> WEBIM之Continuation模式实现
  详细解决方案

WEBIM之Continuation模式实现

热度:135   发布时间:2012-11-07 09:56:10.0
WEBIM之Continuation方式实现

在网页即时通信领域,目前最好的实现方式不外乎以下两种:

  1. 利用Flash的XMLSocket方式实现
  2. 利用Continuation方式实现服务器主动与Client端推送消息,并且服务器代价很小

两者的实现方式各有好处,第一种实现方式最大的弊端在于客户端必须有符合条件的Flash Player,第二种是真正的纯网页实现,但相对来说,服务器代码较高,并发量较低,可靠性就目前程度来说也一般(Continuation有时候经常会出现默认的丢包现象),Continuation方式实现的最好的服务器首选Jetty 6.0+,附件中是我以前做webim时收集到的一个开源产品,附件中的例子显示了DWR结合Continuation实现Google Map的例子,稍加变化,即可实现WebIM产品

var map;
var marker;

window.onload = function() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());

    var origin = new GLatLng(51.517476, -0.086603);
    map.setCenter(origin, 15);

    marker = new GMarker(origin);
    map.addOverlay(marker);
  }

  dwr.engine.setActiveReverseAjax(true);
}

function updateCoordinate(coord) {
  if (coord) {
    var latLng = new GLatLng(coord.latitude,coord.longitude);
    map.addOverlay(new GPolyline([marker.getPoint(),latLng]));
    marker.setPoint(latLng);
    map.setCenter(latLng);
  }
}
?
1 楼 hax 2008-12-01  
What is Continuation?