You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
// 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;
|