mirror of https://github.com/schollz/croc.git
68 lines
1.9 KiB
HTML
68 lines
1.9 KiB
HTML
<html>
|
|
|
|
<head>
|
|
|
|
</html>
|
|
|
|
<body>
|
|
<script src="wasm_exec.js"></script>
|
|
<script>
|
|
const go = new Go();
|
|
WebAssembly.instantiateStreaming(fetch("main.wasm"), go.importObject).then((result) => {
|
|
go.run(result.instance);
|
|
});
|
|
</script>
|
|
<script>
|
|
let log = msg => {
|
|
console.log(msg);
|
|
}
|
|
|
|
// websockets
|
|
var socket;
|
|
var checkErr = e => {
|
|
if (typeof e === 'error') {
|
|
throw err;
|
|
}
|
|
}
|
|
|
|
var croc = {
|
|
"key": "",
|
|
"pake": "",
|
|
};
|
|
var sharedPassphrase = "pass123"
|
|
console.log(sharedPassphrase)
|
|
|
|
const socketMessageListener = (event) => {
|
|
console.log(event);
|
|
if (event.data == "initiated") {
|
|
socket.send(JSON.stringify({ "m": "room", "ps": sharedPassphrase }))
|
|
} else if (event.data == "initpake") {
|
|
croc.pake = pakeInit(sharedPassphrase, "0");
|
|
socket.send(
|
|
messageEncode(croc.key, JSON.stringify({ "t": "pake", "b": croc.pake }))
|
|
)
|
|
} else {
|
|
msgJSON = messageDecode(croc.key, event.data);
|
|
console.log(msgJSON);
|
|
}
|
|
};
|
|
const socketOpenListener = (event) => {
|
|
log('connected to websockets');
|
|
socket.send("receive");
|
|
}
|
|
const socketCloseListener = (event) => {
|
|
if (socket) {
|
|
log('Disconnected.');
|
|
}
|
|
var ws_url = window.origin.replace("http", "ws") + '/ws';
|
|
log(`connecting to '${ws_url}'`)
|
|
socket = new WebSocket(ws_url);
|
|
socket.addEventListener('open', socketOpenListener);
|
|
socket.addEventListener('message', socketMessageListener);
|
|
socket.addEventListener('close', socketCloseListener);
|
|
};
|
|
socketCloseListener();
|
|
</script>
|
|
</body>
|
|
|
|
</html> |