| 'use strict'; | 
|   | 
| // Protocol references: | 
| // | 
| // * http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-75 | 
| // * http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-76 | 
| // * http://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-17 | 
|   | 
| var Base   = require('./driver/base'), | 
|     Client = require('./driver/client'), | 
|     Server = require('./driver/server'); | 
|   | 
| var Driver = { | 
|   client: function(url, options) { | 
|     options = options || {}; | 
|     if (options.masking === undefined) options.masking = true; | 
|     return new Client(url, options); | 
|   }, | 
|   | 
|   server: function(options) { | 
|     options = options || {}; | 
|     if (options.requireMasking === undefined) options.requireMasking = true; | 
|     return new Server(options); | 
|   }, | 
|   | 
|   http: function() { | 
|     return Server.http.apply(Server, arguments); | 
|   }, | 
|   | 
|   isSecureRequest: function(request) { | 
|     return Server.isSecureRequest(request); | 
|   }, | 
|   | 
|   isWebSocket: function(request) { | 
|     return Base.isWebSocket(request); | 
|   }, | 
|   | 
|   validateOptions: function(options, validKeys) { | 
|     Base.validateOptions(options, validKeys); | 
|   } | 
| }; | 
|   | 
| module.exports = Driver; |