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