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);
  }
}
 

你可能感兴趣的:(DWR,Google,Flash)