mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
fix rejudge, add cache
This commit is contained in:
1 parent
c68953c59f
commit
4c53fc8146
7 files changed
+103
-103
No files matched your search
+9
-12
@@ -41,19 +41,16 @@ function GET(route, ...handler) {
|
||||
function POST(route, ...handler) {
|
||||
router.post(route, ...handler);
|
||||
}
|
||||
/**
|
||||
* @callback SocketIOHandler
|
||||
* @param {import('socket.io').Socket} socket
|
||||
*/
|
||||
|
||||
/**
|
||||
* @callback SockJSHandler
|
||||
* @param {import('sockjs').Connection} conn
|
||||
*/
|
||||
/**
|
||||
* @param {string} prefix
|
||||
* @param {SocketIOHandler} handler
|
||||
* @param {SockJSHandler} handler
|
||||
*/
|
||||
function SOCKET(prefix, handler) {
|
||||
function SOCKET(prefix, middlewares, handler) {
|
||||
const sock = sockjs.createServer({ prefix });
|
||||
sock.on('connection', async conn => {
|
||||
conn.cookies = {
|
||||
@@ -80,18 +77,18 @@ function SOCKET(prefix, handler) {
|
||||
});
|
||||
setTimeout(reject, 5000);
|
||||
});
|
||||
for (let i of m) {
|
||||
for (let i of m)
|
||||
await new Promise((resolve, reject) => {
|
||||
i(conn, resolve).catch(reject);
|
||||
});
|
||||
for (let i of middlewares)
|
||||
await new Promise((resolve, reject) => {
|
||||
i(conn, resolve).catch(reject);
|
||||
});
|
||||
}
|
||||
conn.send = data => {
|
||||
conn.write(JSON.stringify(data));
|
||||
};
|
||||
let h = new handler(conn);
|
||||
if (h.onOpen) conn.on('open', h.onOpen);
|
||||
if (h.onClose) conn.on('close', h.onClose);
|
||||
if (h.onMessage) conn.on('data', h.onMessage);
|
||||
handler(conn);
|
||||
});
|
||||
sock.installHandlers(server);
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user