parent-namespace.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.ParentNamespace = void 0;
  4. const namespace_1 = require("./namespace");
  5. class ParentNamespace extends namespace_1.Namespace {
  6. constructor(server) {
  7. super(server, "/_" + ParentNamespace.count++);
  8. this.children = new Set();
  9. }
  10. _initAdapter() { }
  11. emit(...args) {
  12. this.children.forEach(nsp => {
  13. nsp._rooms = this._rooms;
  14. nsp._flags = this._flags;
  15. nsp.emit.apply(nsp, args);
  16. });
  17. this._rooms.clear();
  18. this._flags = {};
  19. return true;
  20. }
  21. createChild(name) {
  22. const namespace = new namespace_1.Namespace(this.server, name);
  23. namespace._fns = this._fns.slice(0);
  24. this.listeners("connect").forEach(listener =>
  25. // @ts-ignore
  26. namespace.on("connect", listener));
  27. this.listeners("connection").forEach(listener =>
  28. // @ts-ignore
  29. namespace.on("connection", listener));
  30. this.children.add(namespace);
  31. this.server._nsps.set(name, namespace);
  32. return namespace;
  33. }
  34. }
  35. exports.ParentNamespace = ParentNamespace;
  36. ParentNamespace.count = 0;