title: Cannot establish connection with socket.io (xhr poll error) in FireFox
body: <p>I am using socket.io 1.4.8 and firefox 48. I have a sample code that works fine in chrome:  </p>
  
  <pre><code>// Server
  var express = require('express');
  var app = express(); var fs = require('fs');
  var option = {
      key: fs.readFileSync('key.pem'),
      cert: fs.readFileSync('cert.pem')
  };
  var https = require('https').createServer(options, app).listen(process.env.PORT || 3000);
  var io = require('socket.io')(https);
  
  io.on('connection', function(socket) {
      socket.on('login', function(username) {
          console.log('[login]', username);
      };
  }
  
  // Client
  var socket = io('https://127.0.0.1:3000');
  var username = 'test';
  socket.emit('login', username);
  </code></pre>
  
  <p>But when i run in firefox, i got an <code>Error: xhr poll error.</code> Here is the log from client:</p>
  
  <pre><code>socket.io-client:url "parse https://127.0.0.1:3000" +0ms
  socket.io-client "new io instance for https://127.0.0.1:3000" +3ms
  socket.io-client:manager readyState closed +3ms
  socket.io-client:manager "opening https://127.0.0.1:3000" +1ms
  engine.io-client:socket creating transport "polling" +1ms
  engine.io-client:polling polling +1ms
  engine.io-client:polling-xhr xhr poll +2ms
  engine.io-client:polling-xhr "xhr open GET: https://127.0.0.1:3000/socket.io/?EIO=3&amp;transport=polling&amp;t=LTvQYL3" +1ms
  engine.io-client:polling-xhr xhr data null +1ms
  engine.io-client:socket setting transport polling +2ms
  socket.io-client:manager connect attempt will timeout after 8000 +1ms
  socket.io-client:manager readyState opening +3ms
  engine.io-client:socket socket error {"type":"TransportError","description":0} +74ms
  socket.io-client:manager connect_error +1ms
  socket.io-client:manager cleanup +0ms
  </code></pre>
  
  <p>How can i fix this error? Thanks.</p>