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.
70 lines
2.4 KiB
70 lines
2.4 KiB
2 years ago
|
"use strict";
|
||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.default = exports.connect = exports.io = exports.Socket = exports.Manager = exports.protocol = void 0;
|
||
|
const url_js_1 = require("./url.js");
|
||
|
const manager_js_1 = require("./manager.js");
|
||
|
Object.defineProperty(exports, "Manager", { enumerable: true, get: function () { return manager_js_1.Manager; } });
|
||
|
const socket_js_1 = require("./socket.js");
|
||
|
Object.defineProperty(exports, "Socket", { enumerable: true, get: function () { return socket_js_1.Socket; } });
|
||
|
const debug_1 = __importDefault(require("debug")); // debug()
|
||
|
const debug = debug_1.default("socket.io-client"); // debug()
|
||
|
/**
|
||
|
* Managers cache.
|
||
|
*/
|
||
|
const cache = {};
|
||
|
function lookup(uri, opts) {
|
||
|
if (typeof uri === "object") {
|
||
|
opts = uri;
|
||
|
uri = undefined;
|
||
|
}
|
||
|
opts = opts || {};
|
||
|
const parsed = url_js_1.url(uri, opts.path || "/socket.io");
|
||
|
const source = parsed.source;
|
||
|
const id = parsed.id;
|
||
|
const path = parsed.path;
|
||
|
const sameNamespace = cache[id] && path in cache[id]["nsps"];
|
||
|
const newConnection = opts.forceNew ||
|
||
|
opts["force new connection"] ||
|
||
|
false === opts.multiplex ||
|
||
|
sameNamespace;
|
||
|
let io;
|
||
|
if (newConnection) {
|
||
|
debug("ignoring socket cache for %s", source);
|
||
|
io = new manager_js_1.Manager(source, opts);
|
||
|
}
|
||
|
else {
|
||
|
if (!cache[id]) {
|
||
|
debug("new io instance for %s", source);
|
||
|
cache[id] = new manager_js_1.Manager(source, opts);
|
||
|
}
|
||
|
io = cache[id];
|
||
|
}
|
||
|
if (parsed.query && !opts.query) {
|
||
|
opts.query = parsed.queryKey;
|
||
|
}
|
||
|
return io.socket(parsed.path, opts);
|
||
|
}
|
||
|
exports.io = lookup;
|
||
|
exports.connect = lookup;
|
||
|
exports.default = lookup;
|
||
|
// so that "lookup" can be used both as a function (e.g. `io(...)`) and as a
|
||
|
// namespace (e.g. `io.connect(...)`), for backward compatibility
|
||
|
Object.assign(lookup, {
|
||
|
Manager: manager_js_1.Manager,
|
||
|
Socket: socket_js_1.Socket,
|
||
|
io: lookup,
|
||
|
connect: lookup,
|
||
|
});
|
||
|
/**
|
||
|
* Protocol version.
|
||
|
*
|
||
|
* @public
|
||
|
*/
|
||
|
var socket_io_parser_1 = require("socket.io-parser");
|
||
|
Object.defineProperty(exports, "protocol", { enumerable: true, get: function () { return socket_io_parser_1.protocol; } });
|
||
|
|
||
|
module.exports = lookup;
|