Blame view

node_modules/sockjs-client/lib/utils/transport.js 1.32 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
  'use strict';
  
  var debug = function() {};
  if (process.env.NODE_ENV !== 'production') {
    debug = require('debug')('sockjs-client:utils:transport');
  }
  
  module.exports = function(availableTransports) {
    return {
      filterToEnabled: function(transportsWhitelist, info) {
        var transports = {
          main: []
        , facade: []
        };
        if (!transportsWhitelist) {
          transportsWhitelist = [];
        } else if (typeof transportsWhitelist === 'string') {
          transportsWhitelist = [transportsWhitelist];
        }
  
        availableTransports.forEach(function(trans) {
          if (!trans) {
            return;
          }
  
          if (trans.transportName === 'websocket' && info.websocket === false) {
            debug('disabled from server', 'websocket');
            return;
          }
  
          if (transportsWhitelist.length &&
              transportsWhitelist.indexOf(trans.transportName) === -1) {
            debug('not in whitelist', trans.transportName);
            return;
          }
  
          if (trans.enabled(info)) {
            debug('enabled', trans.transportName);
            transports.main.push(trans);
            if (trans.facadeTransport) {
              transports.facade.push(trans.facadeTransport);
            }
          } else {
            debug('disabled', trans.transportName);
          }
        });
        return transports;
      }
    };
  };