UNPKG

onebots

Version:

基于icqq的多例oneBot实现

37 lines (36 loc) 1.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Router = exports.WsServer = void 0; const router_1 = __importDefault(require("@koa/router")); const ws_1 = require("ws"); class WsServer extends ws_1.WebSocketServer { constructor(options) { super(options); this.path = options.path; } } exports.WsServer = WsServer; class Router extends router_1.default { constructor(server, options) { super(options); this.wsStack = []; server.on("upgrade", (request, socket, head) => { const { pathname } = new URL(request.url, `wss://localhost`); const wsServer = this.wsStack.find(wss => wss.path === pathname); if (!wsServer) return socket.destroy(); wsServer.handleUpgrade(request, socket, head, function done(ws) { wsServer.emit("connection", ws, request); }); }); } ws(path) { const wsServer = new WsServer({ noServer: true, path }); this.wsStack.push(wsServer); return wsServer; } } exports.Router = Router;