sdg
Version:
pomelo ts
84 lines • 5.86 kB
JavaScript
;
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==