mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
remove domain system
This commit is contained in:
1 parent
7fa4a58abe
commit
fc26af30ef
31 files changed
+709
-1242
No files matched your search
+24
-49
@@ -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
@@ -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);
|
||||
};
|
||||
};
|
||||
Reference in new issue
Block a user