mirror of
https://github.com/torappinfo/uweb.git
synced 2024-08-14 23:54:59 +00:00
add link to check for updates
This commit is contained in:
parent
fbf6635c1a
commit
3a3118c61a
18 changed files with 55 additions and 82 deletions
|
@ -3,8 +3,6 @@ export default {
|
|||
let url = req.url;
|
||||
let iSlash = url.indexOf('/',11);
|
||||
let nUrl = url.substring(iSlash+1);
|
||||
if(nUrl.startsWith("ws"))
|
||||
return await websocketHandler(req, nUrl);
|
||||
return await goUrl(req, nUrl);
|
||||
}
|
||||
}
|
||||
|
@ -19,49 +17,3 @@ async function goUrl(request, url) {
|
|||
}
|
||||
return await fetch(url, fp);
|
||||
}
|
||||
|
||||
async function handleSession(req, serverWebSocket, url) {
|
||||
let isAccept = false;
|
||||
//let ws = new WebSocket(url);
|
||||
let resp = await goUrl(req, url);
|
||||
let ws = resp.webSocket;
|
||||
if (!ws) {
|
||||
throw new Error("server didn't accept WebSocket");
|
||||
}
|
||||
ws.accept();
|
||||
|
||||
serverWebSocket.addEventListener("message", event => {
|
||||
ws.send(event.data);
|
||||
});
|
||||
ws.addEventListener("message", event => {
|
||||
serverWebSocket.send(event.data)
|
||||
});
|
||||
ws.addEventListener("open", event => {
|
||||
isAccept = true;
|
||||
serverWebSocket.accept();
|
||||
})
|
||||
ws.addEventListener("close", event => {
|
||||
serverWebSocket.close(event.code, event.reason);
|
||||
})
|
||||
ws.addEventListener("error", event => {
|
||||
if(!isAccept){
|
||||
serverWebSocket.accept();
|
||||
}
|
||||
serverWebSocket.close();
|
||||
});
|
||||
serverWebSocket.addEventListener("error", event => {
|
||||
serverWebSocket.close();
|
||||
})
|
||||
serverWebSocket.addEventListener("close",event => {
|
||||
ws.close(event.code, event.reason);
|
||||
});
|
||||
}
|
||||
|
||||
async function websocketHandler(req, url){
|
||||
const [client, server] = Object.values(new WebSocketPair())
|
||||
await handleSession(req, server, url);
|
||||
return new Response(null, {
|
||||
status: 101,
|
||||
webSocket: client
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue