Xray-core/transport/internet/websocket/dialer.html

60 lines
1.4 KiB
HTML
Raw Permalink Normal View History

2021-03-23 09:25:35 +00:00
<!DOCTYPE html>
<html>
<head>
<title>Browser Dialer</title>
</head>
2021-03-23 16:55:05 +00:00
<body>
<script>
// Copyright (c) 2021 XRAY. Mozilla Public License 2.0.
var url = "ws://" + window.location.host + "/websocket?token=csrfToken"
2021-03-23 16:55:05 +00:00
var count = 0
setInterval(check, 1000)
function check() {
if (count <= 0) {
count += 1
console.log("Prepare", url)
var ws = new WebSocket(url)
// arraybuffer is significantly faster in chrome than default
// blob, tested with chrome 123
ws.binaryType = "arraybuffer";
2021-03-23 16:55:05 +00:00
var wss = undefined
var first = true
ws.onmessage = function (event) {
if (first) {
first = false
count -= 1
var arr = event.data.split(" ")
console.log("Dial", arr[0], arr[1])
wss = new WebSocket(arr[0], arr[1])
wss.binaryType = "arraybuffer";
2021-03-23 16:55:05 +00:00
var opened = false
wss.onopen = function (event) {
opened = true
ws.send("ok")
}
wss.onmessage = function (event) {
ws.send(event.data)
}
wss.onclose = function (event) {
ws.close()
}
wss.onerror = function (event) {
!opened && ws.send("fail")
wss.close()
}
check()
} else wss.send(event.data)
}
ws.onclose = function (event) {
if (first) count -= 1
else wss.close()
}
ws.onerror = function (event) {
ws.close()
}
2021-03-23 09:25:35 +00:00
}
}
2021-03-23 16:55:05 +00:00
</script>
2021-03-23 09:25:35 +00:00
</body>
</html>