<!DOCTYPE html> <html> <head> <title>Browser Dialer</title> </head> <body> <script> // Copyright (c) 2021 XRAY. Mozilla Public License 2.0. var url = "ws://" + window.location.host + "/websocket" var count = 0 setInterval(check, 1000) function check() { if (count <= 0) { count += 1 console.log("Prepare", url) var ws = new WebSocket(url) 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]) 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() } } } </script> </body> </html>