| |
| /** |
| * Module dependencies. |
| */ |
| |
| var global = (function() { return this; })(); |
| |
| /** |
| * WebSocket constructor. |
| */ |
| |
| var WebSocket = global.WebSocket || global.MozWebSocket; |
| |
| /** |
| * Module exports. |
| */ |
| |
| module.exports = WebSocket ? ws : null; |
| |
| /** |
| * WebSocket constructor. |
| * |
| * The third `opts` options object gets ignored in web browsers, since it's |
| * non-standard, and throws a TypeError if passed to the constructor. |
| * See: https://github.com/einaros/ws/issues/227 |
| * |
| * @param {String} uri |
| * @param {Array} protocols (optional) |
| * @param {Object) opts (optional) |
| * @api public |
| */ |
| |
| function ws(uri, protocols, opts) { |
| var instance; |
| if (protocols) { |
| instance = new WebSocket(uri, protocols); |
| } else { |
| instance = new WebSocket(uri); |
| } |
| return instance; |
| } |
| |
| if (WebSocket) ws.prototype = WebSocket.prototype; |