js seems to work

This commit is contained in:
Zack Scholl 2019-11-12 14:16:33 -08:00
parent 48d1d15713
commit 09e88d41d1
3 changed files with 28 additions and 35 deletions

View File

@ -29,6 +29,13 @@
<div id="byte_content"></div>
Base64: <textarea id="remoteSessionDescription"></textarea> <br />
<button onclick="startSession()"> Send Message </button> <br />
<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>
function readBlob(opt_startByte, opt_stopByte) {
@ -117,46 +124,38 @@
// websockets
var socket;
var pakeData;
var croc = {
"key": "",
}
var sendMessage = msg => {
log(`sending ${JSON.stringify(msg)}`)
socket.send(btoa(JSON.stringify(msg)));
}
const socketMessageListener = (event) => {
var data;
if (event.data.includes("Message")) {
data = JSON.parse(event.data);
function waitForGolang() {
if (typeof writeWebsocketMessage !== "undefined") {
socket.send(writeWebsocketMessage("[1] you are offerer", "", ""))
} else {
data = JSON.parse(atob(event.data));
setTimeout(waitForGolang, 250);
}
if (data.Message == "pake") {
log("processing pake data");
console.log(data);
pakeData = pakeUpdate(pakeData, data.Payload);
console.log(pakeSessionKey(pakeData));
sendMessage({
"Message": "pake",
"Payload": pakePublic(pakeData),
})
} else if (data.Message == "offerer") {
log("i am the offerer")
log("offering the first pake");
sendMessage({
"Message": "answerer",
})
pakeData = pakeInit("test1", 0);
sendMessage({
"Message": "pake",
"Payload": pakePublic(pakeData),
})
}
const socketMessageListener = (event) => {
console.log(event.data);
var data = JSON.parse(readWebsocketMessage(event.data, croc.key));
console.log(data);
if (!("Message" in data)) {
console.log("no message")
return
}
// if (data.Message == "[1] you are offerer") {
// }
};
const socketOpenListener = (event) => {
log('connected to websockets');
sendMessage({
"Message": "offerer",
})
waitForGolang();
}
const socketCloseListener = (event) => {
if (socket) {
@ -172,13 +171,6 @@
};
socketCloseListener();
</script>
<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>
</body>
</html>

View File

@ -59,6 +59,7 @@ func writeWebsocketMessage(this js.Value, inputs []js.Value) interface{} {
}
// readWebsocketMessage(bundled,key)
// returns stringified JSON
// if key == "", then no decryption is used
func readWebsocketMessage(this js.Value, inputs []js.Value) interface{} {
// initialize sender P ("0" indicates sender)

Binary file not shown.