remove domain system

This commit is contained in:
masnn committed 2020-04-03 20:56:08 +08:00
1 parent 7fa4a58abe
commit fc26af30ef
31 files changed
+709 -1242

No files matched your search

+24 -49
View File
@@ -1,53 +1,28 @@
const options = require('../options');
if (options.mq) {
const amqplib = require('amqplib');
/**
* @type {import('amqplib').Connection}
*/
let conn = null;
let ch = null;
module.exports = {
async connect() {
conn = await amqplib.connect(options.mq.url);
ch = conn.createChannel();
},
async assertQueue(queue) {
return await ch.assertQueue(queue);
},
async publish(queue, data) {
return await ch.sendToQueue(queue, Buffer.from(data));
},
async consume(queue, callback) {
ch.consume(queue, function (msg) {
if (msg !== null) {
callback(msg.content.toString(), () => { ch.ack(msg); });
ch.ack(msg);
}
});
}
};
} else {
let q = {};
module.exports = {
async connect() { },
async assertQueue(queue) {
q[queue] = q[queue] || [];
},
async publish(queue, data) {
q[queue].push(data);
},
async consume(queue, callback) {
while (1) {
if (q[queue].length) {
let data = q[queue][0];
q[queue].splice(0, 1);
callback(data, () => { });
}
let q = {};
module.exports = {
async connect() { },
async assert(queue) {
q[queue] = q[queue] || [];
},
async push(queue, data) {
q[queue].push(data);
},
async get(queue, wait = true) {
if (wait) {
while (!q[queue].length)
await new Promise(resolve => {
setTimeout(resolve, 500);
setTimeout(resolve, 100);
});
let data = q[queue][0];
q[queue].splice(0, 1);
return data;
} else {
if (!q[queue].length) return null;
else {
let data = q[queue][0];
q[queue].splice(0, 1);
return data;
}
}
};
}
}
};
+48 -7
View File
@@ -1,12 +1,50 @@
const
Koa = require('koa'),
morgan = require('koa-morgan'),
Body = require('koa-body'),
Router = require('koa-router'),
SockJS = require('sockjs');
const options = require('../options');
let http = options.listen.https ? require('https') : require('http');
let app = new (require('koa'))();
let app = new Koa();
let server = http.createServer(app.callback());
app.keys = options.session.keys;
app.use(require('koa-morgan')(':method :url :status :res[content-length] - :response-time ms'));
app.use(require('koa-body')());
let router = (new require('koa-router'))();
const sockjs = require('sockjs');
app.use(morgan(':method :url :status :res[content-length] - :response-time ms'));
app.use(Body());
let router = new Router();
let contexts = [];
function CONTEXT() {
this.router = new Router();
/**
* @param {import('koa').Middleware} middleware
*/
function MIDDLEWARE(middleware) {
router.use(middleware);
}
/**
* @param {string} route
* @param {...import('koa').Middleware} handler
*/
function GET(route, ...handler) {
router.get(route, ...handler);
}
/**
* @param {string} route
* @param {...import('koa').Middleware} handler
*/
function POST(route, ...handler) {
router.post(route, ...handler);
}
this.MIDDLEWARE = MIDDLEWARE;
this.GET = GET;
this.POST = POST;
contexts.push(this);
return this;
}
/**
* @param {import('koa').Middleware} middleware
*/
@@ -36,16 +74,19 @@ function POST(route, ...handler) {
* @param {SockJSHandler} handler
*/
function SOCKET(prefix, handler) {
const sock = sockjs.createServer({ prefix });
const sock = SockJS.createServer({ prefix });
sock.on('connection', handler);
sock.installHandlers(server);
}
exports.CONTEXT = CONTEXT;
exports.MIDDLEWARE = MIDDLEWARE;
exports.GET = GET;
exports.POST = POST;
exports.SOCKET = SOCKET;
exports.start = function start() {
app.use(router.routes()).use(router.allowedMethods());
for (let c of contexts)
app.use(c.router.routes()).use(c.router.allowedMethods());
app.listen(options.listen.port);
console.log('Server listening at: %s', options.listen.port);
};
};