| 'use strict'; |
| |
| // The simplest and most robust transport, using the well-know cross |
| // domain hack - JSONP. This transport is quite inefficient - one |
| // message could use up to one http request. But at least it works almost |
| // everywhere. |
| // Known limitations: |
| // o you will get a spinning cursor |
| // o for Konqueror a dumb timer is needed to detect errors |
| |
| var inherits = require('inherits') |
| , SenderReceiver = require('./lib/sender-receiver') |
| , JsonpReceiver = require('./receiver/jsonp') |
| , jsonpSender = require('./sender/jsonp') |
| ; |
| |
| function JsonPTransport(transUrl) { |
| if (!JsonPTransport.enabled()) { |
| throw new Error('Transport created when disabled'); |
| } |
| SenderReceiver.call(this, transUrl, '/jsonp', jsonpSender, JsonpReceiver); |
| } |
| |
| inherits(JsonPTransport, SenderReceiver); |
| |
| JsonPTransport.enabled = function() { |
| return !!global.document; |
| }; |
| |
| JsonPTransport.transportName = 'jsonp-polling'; |
| JsonPTransport.roundTrips = 1; |
| JsonPTransport.needBody = true; |
| |
| module.exports = JsonPTransport; |