mirror of
https://gitcode.com/gh_mirrors/hy/Hydro.git
synced 2026-10-20 01:38:19 +08:00
修复socket连接出错
This commit is contained in:
1 parent
a2600d5cc4
commit
f259106aa3
1 file changed
+38
-34
+38
-34
@@ -53,42 +53,46 @@ function POST(route, ...handler) {
|
|||||||
function SOCKET(prefix, middlewares, handler) {
|
function SOCKET(prefix, middlewares, handler) {
|
||||||
const sock = sockjs.createServer({ prefix });
|
const sock = sockjs.createServer({ prefix });
|
||||||
sock.on('connection', async conn => {
|
sock.on('connection', async conn => {
|
||||||
conn.cookies = {
|
try {
|
||||||
get(name) {
|
conn.cookies = {
|
||||||
return conn.cookies[name];
|
get(name) {
|
||||||
},
|
return conn.cookies[name];
|
||||||
set() { }
|
},
|
||||||
};
|
set() { }
|
||||||
conn.state = {};
|
};
|
||||||
conn.params = {};
|
conn.state = {};
|
||||||
conn.request = {
|
conn.params = {};
|
||||||
headers: conn.headers
|
conn.request = {
|
||||||
};
|
headers: conn.headers
|
||||||
let p = conn.url.split('?')[1].split('&');
|
};
|
||||||
for (let i in p) p[i] = p[i].split('=');
|
let p = (conn.url.split('?')[1] || '').split('&');
|
||||||
for (let i in p) conn.params[p[i][0]] = decodeURIComponent(p[i][1]);
|
for (let i in p) p[i] = p[i].split('=');
|
||||||
await new Promise((resolve, reject) => {
|
for (let i in p) conn.params[p[i][0]] = decodeURIComponent(p[i][1]);
|
||||||
conn.once('data', msg => {
|
|
||||||
for (let i of msg.split(';')) {
|
|
||||||
i = i.trim().split('=');
|
|
||||||
conn.cookies[i[0]] = i[1];
|
|
||||||
}
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
setTimeout(reject, 5000);
|
|
||||||
});
|
|
||||||
for (let i of m)
|
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
i(conn, resolve).catch(reject);
|
conn.once('data', msg => {
|
||||||
|
for (let i of msg.split(';')) {
|
||||||
|
i = i.trim().split('=');
|
||||||
|
conn.cookies[i[0]] = i[1];
|
||||||
|
}
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
setTimeout(reject, 5000);
|
||||||
});
|
});
|
||||||
for (let i of middlewares)
|
for (let i of m)
|
||||||
await new Promise((resolve, reject) => {
|
await new Promise((resolve, reject) => {
|
||||||
i(conn, resolve).catch(reject);
|
i(conn, resolve).catch(reject);
|
||||||
});
|
});
|
||||||
conn.send = data => {
|
for (let i of middlewares)
|
||||||
conn.write(JSON.stringify(data));
|
await new Promise((resolve, reject) => {
|
||||||
};
|
i(conn, resolve).catch(reject);
|
||||||
handler(conn);
|
});
|
||||||
|
conn.send = data => {
|
||||||
|
conn.write(JSON.stringify(data));
|
||||||
|
};
|
||||||
|
handler(conn);
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
sock.installHandlers(server);
|
sock.installHandlers(server);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user