![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/lib/node_modules/socket.io/node_modules/engine.io/lib/ |
Upload File : |
const EventEmitter = require("events"); const parser_v4 = require("engine.io-parser"); const parser_v3 = require("./parser-v3/index"); const debug = require("debug")("engine:transport"); /** * Noop function. * * @api private */ function noop() {} class Transport extends EventEmitter { /** * Transport constructor. * * @param {http.IncomingMessage} request * @api public */ constructor(req) { super(); this.readyState = "open"; this.discarded = false; this.protocol = req._query.EIO === "3" ? 3 : 4; // 4th revision by default this.parser = this.protocol === 3 ? parser_v3 : parser_v4; } /** * Flags the transport as discarded. * * @api private */ discard() { this.discarded = true; } /** * Called with an incoming HTTP request. * * @param {http.IncomingMessage} request * @api private */ onRequest(req) { debug("setting request"); this.req = req; } /** * Closes the transport. * * @api private */ close(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 */ onError(msg, desc) { if (this.listeners("error").length) { const 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 */ onPacket(packet) { this.emit("packet", packet); } /** * Called with the encoded packet data. * * @param {String} data * @api private */ onData(data) { this.onPacket(this.parser.decodePacket(data)); } /** * Called upon transport close. * * @api private */ onClose() { this.readyState = "closed"; this.emit("close"); } } module.exports = Transport;