dojox/cometd/callbackPollTransport.js

  • Provides:

    • dojox.cometd.callbackPollTransport
  • Requires:

    • dojox.cometd._base in common
    • dojox.cometd.longPollTransport in common
    • dojo.io.script in common in project dojo
  • dojox.cometd.callbackPollTransport

    • type
      Function
    • ?? initialized = 1 (debug: boolean) ??
    • source: [view]
       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(){}
    • summary
  • dojox.cometd.callbackPollTransport._connectionType

    • summary
  • dojox.cometd.callbackPollTransport._cometd

    • summary
  • dojox.cometd.callbackPollTransport.check

    • type
      Function
    • parameters:
      • types: (typeof )
      • version: (typeof )
      • xdomain: (typeof )
    • source: [view]
      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);
    • summary
  • dojox.cometd.callbackPollTransport.tunnelInit

    • type
      Function
    • source: [view]
        var message = {
         channel: "/meta/connect",
         clientId: this._cometd.clientId,
         connectionType: this._connectionType,
         id: "" + this._cometd.messageId++
        };
        message = this._cometd._extendOut(message);
        this.openTunnelWith([message]);
    • summary
  • dojox.cometd.callbackPollTransport.tunnelCollapse

    • summary
  • dojox.cometd.callbackPollTransport._connect

    • summary
  • dojox.cometd.callbackPollTransport.deliver

    • summary
  • dojox.cometd.callbackPollTransport.openTunnelWith

    • type
      Function
    • parameters:
      • content: (typeof )
      • url: (typeof )
    • source: [view]
        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);
    • summary
  • dojox.cometd.callbackPollTransport._cometd._polling

    • summary
  • dojox.cometd.callbackPollTransport.sendMessages

    • type
      Function
    • parameters:
      • messages: (typeof array)
    • source: [view]
        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);
    • summary
  • dojox.cometd.callbackPollTransport.startup

    • type
      Function
    • parameters:
      • handshakeData: (typeof )
    • source: [view]
        if(this._cometd._connected){ return; }
        this.tunnelInit();
    • summary
  • dojox.cometd.callbackPollTransport.disconnect

    • type
      Function
    • source: [view]
        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]) }
        });
    • summary
  • dojox.cometd.callbackPollTransport.cancelConnect

    • type
      Function
    • source: [view]
      }
    • summary
  • dojox.cometd

    • type
      Object
    • summary
  • dojox

    • type
      Object
    • summary