From 94a1bec613a6cb47c45c00c815895369e3f0ee77 Mon Sep 17 00:00:00 2001 From: Bryce Kahle Date: Fri, 20 May 2016 11:22:04 -0700 Subject: [PATCH] Do not pass protocols or options to browser WebSocket constructor Fixes #309 --- lib/transport/browser/websocket.js | 9 ++++++++- lib/transport/websocket.js | 2 +- tests/node.js | 6 +++++- tests/support/sockjs_server.js | 2 ++ 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/transport/browser/websocket.js b/lib/transport/browser/websocket.js index b98b3b9d..dbd3bfd3 100644 --- a/lib/transport/browser/websocket.js +++ b/lib/transport/browser/websocket.js @@ -1 +1,8 @@ -module.exports = global.WebSocket || global.MozWebSocket; +'use strict'; + +var Driver = global.WebSocket || global.MozWebSocket; +if (Driver) { + module.exports = function WebSocketBrowserDriver(url) { + return new Driver(url); + }; +} diff --git a/lib/transport/websocket.js b/lib/transport/websocket.js index 55d5d5b5..7f5ce3e1 100644 --- a/lib/transport/websocket.js +++ b/lib/transport/websocket.js @@ -29,7 +29,7 @@ function WebSocketTransport(transUrl, ignore, options) { } this.url = url; - this.ws = new WebsocketDriver(this.url, undefined, options); + this.ws = new WebsocketDriver(this.url, [], options); this.ws.onmessage = function(e) { debug('message event', e.data); self.emit('message', e.data); diff --git a/tests/node.js b/tests/node.js index 4c2d7872..0f2b0af4 100644 --- a/tests/node.js +++ b/tests/node.js @@ -1,6 +1,6 @@ 'use strict'; -require('./support/sockjs_server'); +var server = require('./support/sockjs_server'); require('./lib/main'); require('./lib/main-node'); @@ -9,3 +9,7 @@ require('./lib/receivers'); require('./lib/senders'); require('./lib/end-to-end'); require('./lib/transports'); + +after(function() { + server.close(); +}); diff --git a/tests/support/sockjs_server.js b/tests/support/sockjs_server.js index 77498607..9d5a079d 100644 --- a/tests/support/sockjs_server.js +++ b/tests/support/sockjs_server.js @@ -74,3 +74,5 @@ sockjs.install({ console.log(' [*] Listening on', port); server.listen(port); + +module.exports = server;