|
|
- '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;
|