UNPKG

sdg

Version:

pomelo ts

84 lines 5.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const lodash_1 = tslib_1.__importDefault(require("lodash")); const http_1 = tslib_1.__importDefault(require("http")); const socket_io_1 = tslib_1.__importDefault(require("socket.io")); const events_1 = require("events"); const siosocket_1 = tslib_1.__importDefault(require("./siosocket")); const __1 = require("../.."); const httpServer = http_1.default.createServer(); // const PKG_ID_BYTES = 4; // const PKG_ROUTE_LENGTH_BYTES = 1; // const PKG_HEAD_BYTES = PKG_ID_BYTES + PKG_ROUTE_LENGTH_BYTES; class SioConnector extends events_1.EventEmitter { constructor(port, host, opts) { super(); this.port = port; this.host = host; this.curId = 1; this.opts = lodash_1.default.defaults({}, opts, { transports: ['websocket', 'polling-xhr', 'polling-jsonp', 'polling'], }); // this.heartbeats = opts.heartbeats || true; // this.closeTimeout = opts.closeTimeout || 60; // this.heartbeatTimeout = opts.heartbeatTimeout || 60; // this.heartbeatInterval = opts.heartbeatInterval || 25; } start() { const sio = new socket_io_1.default.Server(httpServer, this.opts); const port = this.port; httpServer.listen(port, function () { console.log('sio Server listening at port %d', port); }); // sio.set('resource', '/socket.io'); // sio.set('transports', this.opts.transports); // sio.set('heartbeat timeout', this.heartbeatTimeout); // sio.set('heartbeat interval', this.heartbeatInterval); sio.on('connect', (socket) => { const curId = this.getCurId(); console.log(`[${curId}] new client connect`); const sioSocket = new siosocket_1.default(curId, socket); this.emit('connection', sioSocket); }); this.protobuf = __1.sdg.app.components.__protobuf__; } getCurId() { // 防止curId过大,重新赋值 if (this.curId > Math.pow(10, 7)) this.curId = 1; return this.curId++; } stop() { // this.wsocket.server.close(); // process.nextTick(cb); } encode(route, msg) { return this.protobuf.encode(route, msg); // if (reqId) { // return this.composeResponse(reqId, route, msg); // } // return this.composePush(route, msg); } decode(route, body) { return this.protobuf.decode(route, body); // let index = 0; // // const id = this.parseIntField(msg, index, PKG_ID_BYTES); // index += PKG_ID_BYTES; // // const routeLen = this.parseIntField(msg, index, PKG_ROUTE_LENGTH_BYTES); // // const route = msg.substr(PKG_HEAD_BYTES, routeLen); // const body = msg.substr(PKG_HEAD_BYTES + routeLen); // // return { // id, // route, // body: JSON.parse(body) // }; } } exports.default = SioConnector; ; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lvY29ubmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2Nvbm5lY3RvcnMvc2lvL3Npb2Nvbm5lY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw0REFBdUI7QUFDdkIsd0RBQXdCO0FBQ3hCLGtFQUEyQjtBQUMzQixtQ0FBc0M7QUFFdEMsb0VBQW9DO0FBQ3BDLDZCQUF3RTtBQUd4RSxNQUFNLFVBQVUsR0FBRyxjQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7QUFFdkMsMEJBQTBCO0FBQzFCLG9DQUFvQztBQUNwQyxnRUFBZ0U7QUFFaEUsTUFBcUIsWUFBYSxTQUFRLHFCQUFZO0lBT3BELFlBQWEsSUFBWSxFQUFFLElBQVksRUFBRSxJQUF1QjtRQUM5RCxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxnQkFBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFO1lBQy9CLFVBQVUsRUFBRSxDQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBRTtTQU92RSxDQUFDLENBQUM7UUFDSCw2Q0FBNkM7UUFDN0MsK0NBQStDO1FBQy9DLHVEQUF1RDtRQUN2RCx5REFBeUQ7SUFDM0QsQ0FBQztJQUVNLEtBQUs7UUFDVixNQUFNLEdBQUcsR0FBRyxJQUFJLG1CQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFakQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRTtZQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBQ0gscUNBQXFDO1FBQ3JDLCtDQUErQztRQUMvQyx1REFBdUQ7UUFDdkQseURBQXlEO1FBRXpELEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLHNCQUFzQixDQUFDLENBQUM7WUFFN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxtQkFBUyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO0lBQ2xELENBQUM7SUFFTyxRQUFRO1FBQ2QsaUJBQWlCO1FBQ2pCLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNqRCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sSUFBSTtRQUNULCtCQUErQjtRQUMvQix3QkFBd0I7SUFDMUIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFhLEVBQUUsR0FBWTtRQUN2QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QyxlQUFlO1FBQ2Ysb0RBQW9EO1FBQ3BELElBQUk7UUFDSix1Q0FBdUM7SUFDekMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFhLEVBQUUsSUFBYztRQUN6QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6QyxpQkFBaUI7UUFDakIsRUFBRTtRQUNGLDJEQUEyRDtRQUMzRCx5QkFBeUI7UUFDekIsRUFBRTtRQUNGLDJFQUEyRTtRQUMzRSxFQUFFO1FBQ0Ysc0RBQXNEO1FBQ3RELHNEQUFzRDtRQUN0RCxFQUFFO1FBQ0YsV0FBVztRQUNYLFFBQVE7UUFDUixXQUFXO1FBQ1gsMkJBQTJCO1FBQzNCLEtBQUs7SUFDUCxDQUFDO0NBd0JGO0FBL0dELCtCQStHQztBQUFBLENBQUMifQ==