all files / networkWrapper/ index.js

100% Statements 9/9
100% Branches 6/6
100% Functions 1/1
100% Lines 9/9
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                                     
/**
 *
 * @param host
 * @param port
 * @param sslConnection
 * @returns {Object} tnstantiated WebSocket/Socket.IO object
 */
 
function network(host, port, sslConnection) {
  // Web browser / NodeJS websocket handling
  if (typeof window !== 'undefined') {
    // use native websockets if the browser supports it
    if (typeof WebSocket !== 'undefined') {
      return new (require('./wrappers/websocket'))(host, port, sslConnection);
    }
    // otherwise fallback to socket.io, if available
    else if (window.io) {
      return new (require('./wrappers/socketio'))(host, port, sslConnection);
    }
 
    throw new Error('Aborting: no websocket support detected and no socket.io library loaded either.');
  }
 
  return new (require('./wrappers/websocket'))(host, port, sslConnection);
}
 
module.exports = network;