| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- // API references:
 
- //
 
- // * https://html.spec.whatwg.org/multipage/comms.html#network
 
- // * https://dom.spec.whatwg.org/#interface-eventtarget
 
- // * https://dom.spec.whatwg.org/#interface-event
 
- 'use strict';
 
- var util   = require('util'),
 
-     driver = require('websocket-driver'),
 
-     API    = require('./websocket/api');
 
- var WebSocket = function(request, socket, body, protocols, options) {
 
-   options = options || {};
 
-   this._stream = socket;
 
-   this._driver = driver.http(request, { maxLength: options.maxLength, protocols: protocols });
 
-   var self = this;
 
-   if (!this._stream || !this._stream.writable) return;
 
-   if (!this._stream.readable) return this._stream.end();
 
-   var catchup = function() { self._stream.removeListener('data', catchup) };
 
-   this._stream.on('data', catchup);
 
-   API.call(this, options);
 
-   process.nextTick(function() {
 
-     self._driver.start();
 
-     self._driver.io.write(body);
 
-   });
 
- };
 
- util.inherits(WebSocket, API);
 
- WebSocket.isWebSocket = function(request) {
 
-   return driver.isWebSocket(request);
 
- };
 
- WebSocket.validateOptions = function(options, validKeys) {
 
-   driver.validateOptions(options, validKeys);
 
- };
 
- WebSocket.WebSocket   = WebSocket;
 
- WebSocket.Client      = require('./websocket/client');
 
- WebSocket.EventSource = require('./eventsource');
 
- module.exports        = WebSocket;
 
 
  |