You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							49 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							49 lines
						
					
					
						
							1.0 KiB
						
					
					
				'use strict'; | 
						|
 | 
						|
var EventEmitter = require('events').EventEmitter | 
						|
  , inherits = require('inherits') | 
						|
  , JSON3 = require('json3') | 
						|
  , objectUtils = require('./utils/object') | 
						|
  ; | 
						|
 | 
						|
var debug = function() {}; | 
						|
if (process.env.NODE_ENV !== 'production') { | 
						|
  debug = require('debug')('sockjs-client:info-ajax'); | 
						|
} | 
						|
 | 
						|
function InfoAjax(url, AjaxObject) { | 
						|
  EventEmitter.call(this); | 
						|
 | 
						|
  var self = this; | 
						|
  var t0 = +new Date(); | 
						|
  this.xo = new AjaxObject('GET', url); | 
						|
 | 
						|
  this.xo.once('finish', function(status, text) { | 
						|
    var info, rtt; | 
						|
    if (status === 200) { | 
						|
      rtt = (+new Date()) - t0; | 
						|
      if (text) { | 
						|
        try { | 
						|
          info = JSON3.parse(text); | 
						|
        } catch (e) { | 
						|
          debug('bad json', text); | 
						|
        } | 
						|
      } | 
						|
 | 
						|
      if (!objectUtils.isObject(info)) { | 
						|
        info = {}; | 
						|
      } | 
						|
    } | 
						|
    self.emit('finish', info, rtt); | 
						|
    self.removeAllListeners(); | 
						|
  }); | 
						|
} | 
						|
 | 
						|
inherits(InfoAjax, EventEmitter); | 
						|
 | 
						|
InfoAjax.prototype.close = function() { | 
						|
  this.removeAllListeners(); | 
						|
  this.xo.close(); | 
						|
}; | 
						|
 | 
						|
module.exports = InfoAjax;
 | 
						|
 |