/*
Copyright (c) 2004-2011, 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"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
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(types, version, xdomain){
// we handle x-domain!
return (dojo.indexOf(types, "callback-polling") >= 0);
}
this.tunnelInit = function(){
var message = {
channel: "/meta/connect",
clientId: this._cometd.clientId,
connectionType: this._connectionType,
id: "" + this._cometd.messageId++
};
message = this._cometd._extendOut(message);
this.openTunnelWith([message]);
}
this.tunnelCollapse = dojox.cometd.longPollTransport.tunnelCollapse;
this._connect = dojox.cometd.longPollTransport._connect;
this.deliver = dojox.cometd.longPollTransport.deliver;
this.openTunnelWith = function(content, url){
this._cometd._polling = true;
var script = {
load: dojo.hitch(this, function(data){
this._cometd._polling=false;
this._cometd.deliver(data);
this._cometd._backon();
this.tunnelCollapse();
}),
error: dojo.hitch(this, function(err){
this._cometd._polling = false;
this._cometd._publishMeta("connect",false);
this._cometd._backoff();
this.tunnelCollapse();
}),
url: (url || this._cometd.url),
content: { message: dojo.toJson(content) },
callbackParamName: "jsonp"
};
var connectTimeout = this._cometd._connectTimeout();
if(connectTimeout > 0){
script.timeout=connectTimeout;
}
dojo.io.script.get(script);
}
this.sendMessages = function(/*array*/ messages){
for(var i = 0; i < messages.length; i++){
messages[i].clientId = this._cometd.clientId;
messages[i].id = ""+this._cometd.messageId++;
messages[i]=this._cometd._extendOut(messages[i]);
}
var bindArgs = {
url: this._cometd.url || dojo.config["cometdRoot"],
load: dojo.hitch(this._cometd, "deliver"),
callbackParamName: "jsonp",
content: { message: dojo.toJson( messages ) },
error: dojo.hitch(this, function(err){
this._cometd._publishMeta("publish",false,{messages:messages});
}),
timeout: this._cometd.expectedNetworkDelay
};
return dojo.io.script.get(bindArgs);
}
this.startup = function(handshakeData){
if(this._cometd._connected){ return; }
this.tunnelInit();
}
// FIXME: what is this supposed to do? ;)
this.disconnect = dojox.cometd.longPollTransport.disconnect;
this.disconnect = function(){
var message = {
channel: "/meta/disconnect",
clientId: this._cometd.clientId,
id: "" + this._cometd.messageId++
};
message = this._cometd._extendOut(message);
dojo.io.script.get({
url: this._cometd.url || dojo.config["cometdRoot"],
callbackParamName: "jsonp",
content: { message: dojo.toJson([message]) }
});
}
this.cancelConnect = function(){}
}
dojox.cometd.connectionTypes.register("callback-polling", dojox.cometd.callbackPollTransport.check, dojox.cometd.callbackPollTransport);
}
# |
Change |
User |
Description |
Committed |
|
#1
|
16170 |
perforce_software |
Move Chronicle files to follow new path scheme for branching. |
|
|
//guest/perforce_software/chronicle/collateral/dojo-debug/dojox/cometd/callbackPollTransport.js |
#1
|
8972 |
Matt Attaway |
Initial add of the Chronicle source code |
|
|