| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.cometd.callbackPollTransport"]){ |
| dojo._hasResource["dojox.cometd.callbackPollTransport"]=true; |
| dojo.provide("dojox.cometd.callbackPollTransport"); |
| dojo.require("dojox.cometd._base"); |
| dojo.require("dojox.cometd.longPollTransport"); |
| dojo.require("dojo.io.script"); |
| dojox.cometd.callbackPollTransport=new function(){ |
| this._connectionType="callback-polling"; |
| this._cometd=null; |
| this.check=function(_1,_2,_3){ |
| return (dojo.indexOf(_1,"callback-polling")>=0); |
| }; |
| this.tunnelInit=function(){ |
| var _4={channel:"/meta/connect",clientId:this._cometd.clientId,connectionType:this._connectionType,id:""+this._cometd.messageId++}; |
| _4=this._cometd._extendOut(_4); |
| this.openTunnelWith([_4]); |
| }; |
| this.tunnelCollapse=dojox.cometd.longPollTransport.tunnelCollapse; |
| this._connect=dojox.cometd.longPollTransport._connect; |
| this.deliver=dojox.cometd.longPollTransport.deliver; |
| this.openTunnelWith=function(_5,_6){ |
| this._cometd._polling=true; |
| var _7={load:dojo.hitch(this,function(_8){ |
| this._cometd._polling=false; |
| this._cometd.deliver(_8); |
| this._cometd._backon(); |
| this.tunnelCollapse(); |
| }),error:dojo.hitch(this,function(_9){ |
| this._cometd._polling=false; |
| this._cometd._publishMeta("connect",false); |
| this._cometd._backoff(); |
| this.tunnelCollapse(); |
| }),url:(_6||this._cometd.url),content:{message:dojo.toJson(_5)},callbackParamName:"jsonp"}; |
| var _a=this._cometd._connectTimeout(); |
| if(_a>0){ |
| _7.timeout=_a; |
| } |
| dojo.io.script.get(_7); |
| }; |
| this.sendMessages=function(_b){ |
| for(var i=0;i<_b.length;i++){ |
| _b[i].clientId=this._cometd.clientId; |
| _b[i].id=""+this._cometd.messageId++; |
| _b[i]=this._cometd._extendOut(_b[i]); |
| } |
| var _c={url:this._cometd.url||dojo.config["cometdRoot"],load:dojo.hitch(this._cometd,"deliver"),callbackParamName:"jsonp",content:{message:dojo.toJson(_b)},error:dojo.hitch(this,function(_d){ |
| this._cometd._publishMeta("publish",false,{messages:_b}); |
| }),timeout:this._cometd.expectedNetworkDelay}; |
| return dojo.io.script.get(_c); |
| }; |
| this.startup=function(_e){ |
| if(this._cometd._connected){ |
| return; |
| } |
| this.tunnelInit(); |
| }; |
| this.disconnect=dojox.cometd.longPollTransport.disconnect; |
| this.disconnect=function(){ |
| var _f={channel:"/meta/disconnect",clientId:this._cometd.clientId,id:""+this._cometd.messageId++}; |
| _f=this._cometd._extendOut(_f); |
| dojo.io.script.get({url:this._cometd.url||dojo.config["cometdRoot"],callbackParamName:"jsonp",content:{message:dojo.toJson([_f])}}); |
| }; |
| this.cancelConnect=function(){ |
| }; |
| }; |
| dojox.cometd.connectionTypes.register("callback-polling",dojox.cometd.callbackPollTransport.check,dojox.cometd.callbackPollTransport); |
| } |