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.
37 lines
1.2 KiB
37 lines
1.2 KiB
4 years ago
|
"use strict";
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.ParentNamespace = void 0;
|
||
|
const namespace_1 = require("./namespace");
|
||
|
class ParentNamespace extends namespace_1.Namespace {
|
||
|
constructor(server) {
|
||
|
super(server, "/_" + ParentNamespace.count++);
|
||
|
this.children = new Set();
|
||
|
}
|
||
|
_initAdapter() { }
|
||
|
emit(...args) {
|
||
|
this.children.forEach(nsp => {
|
||
|
nsp._rooms = this._rooms;
|
||
|
nsp._flags = this._flags;
|
||
|
nsp.emit.apply(nsp, args);
|
||
|
});
|
||
|
this._rooms.clear();
|
||
|
this._flags = {};
|
||
|
return true;
|
||
|
}
|
||
|
createChild(name) {
|
||
|
const namespace = new namespace_1.Namespace(this.server, name);
|
||
|
namespace._fns = this._fns.slice(0);
|
||
|
this.listeners("connect").forEach(listener =>
|
||
|
// @ts-ignore
|
||
|
namespace.on("connect", listener));
|
||
|
this.listeners("connection").forEach(listener =>
|
||
|
// @ts-ignore
|
||
|
namespace.on("connection", listener));
|
||
|
this.children.add(namespace);
|
||
|
this.server._nsps.set(name, namespace);
|
||
|
return namespace;
|
||
|
}
|
||
|
}
|
||
|
exports.ParentNamespace = ParentNamespace;
|
||
|
ParentNamespace.count = 0;
|