From 67fdec20726e48ba3a934cb25bb30d47ec4a4f29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yaroslav=20De=20La=20Pe=C3=B1a=20Smirnov?= Date: Wed, 29 Nov 2017 11:44:34 +0300 Subject: Initial commit, version 0.5.3 --- node_modules/engine.io/lib/transport.js | 128 ++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 node_modules/engine.io/lib/transport.js (limited to 'node_modules/engine.io/lib/transport.js') diff --git a/node_modules/engine.io/lib/transport.js b/node_modules/engine.io/lib/transport.js new file mode 100644 index 0000000..933dad5 --- /dev/null +++ b/node_modules/engine.io/lib/transport.js @@ -0,0 +1,128 @@ + +/** + * Module dependencies. + */ + +var EventEmitter = require('events').EventEmitter; +var parser = require('engine.io-parser'); +var util = require('util'); +var debug = require('debug')('engine:transport'); + +/** + * Expose the constructor. + */ + +module.exports = Transport; + +/** + * Noop function. + * + * @api private + */ + +function noop () {} + +/** + * Transport constructor. + * + * @param {http.IncomingMessage} request + * @api public + */ + +function Transport (req) { + this.readyState = 'open'; + this.discarded = false; +} + +/** + * Inherits from EventEmitter. + */ + +util.inherits(Transport, EventEmitter); + +/** + * Flags the transport as discarded. + * + * @api private + */ + +Transport.prototype.discard = function () { + this.discarded = true; +}; + +/** + * Called with an incoming HTTP request. + * + * @param {http.IncomingMessage} request + * @api private + */ + +Transport.prototype.onRequest = function (req) { + debug('setting request'); + this.req = req; +}; + +/** + * Closes the transport. + * + * @api private + */ + +Transport.prototype.close = function (fn) { + if ('closed' === this.readyState || 'closing' === this.readyState) return; + + this.readyState = 'closing'; + this.doClose(fn || noop); +}; + +/** + * Called with a transport error. + * + * @param {String} message error + * @param {Object} error description + * @api private + */ + +Transport.prototype.onError = function (msg, desc) { + if (this.listeners('error').length) { + var err = new Error(msg); + err.type = 'TransportError'; + err.description = desc; + this.emit('error', err); + } else { + debug('ignored transport error %s (%s)', msg, desc); + } +}; + +/** + * Called with parsed out a packets from the data stream. + * + * @param {Object} packet + * @api private + */ + +Transport.prototype.onPacket = function (packet) { + this.emit('packet', packet); +}; + +/** + * Called with the encoded packet data. + * + * @param {String} data + * @api private + */ + +Transport.prototype.onData = function (data) { + this.onPacket(parser.decodePacket(data)); +}; + +/** + * Called upon transport close. + * + * @api private + */ + +Transport.prototype.onClose = function () { + this.readyState = 'closed'; + this.emit('close'); +}; -- cgit v1.2.3