123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- // wrapped by build app
- define("dojox/cometd/callbackPollTransport", ["dijit","dojo","dojox","dojo/require!dojox/cometd/_base,dojox/cometd/longPollTransport,dojo/io/script"], function(dijit,dojo,dojox){
- 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);
- });
|