From: Ian Jackson Date: Sun, 5 Jul 2020 23:59:52 +0000 (+0100) Subject: wip fixes etc. X-Git-Tag: otter-0.2.0~1432 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=d18298e4d1b772658b72d4eac0708bf2529e73e4;p=otter.git wip fixes etc. --- diff --git a/src/bin/server.rs b/src/bin/server.rs index bcd0d126..508c2839 100644 --- a/src/bin/server.rs +++ b/src/bin/server.rs @@ -163,6 +163,7 @@ fn api_grab(form : Json) -> impl response::Responder<'static> { }], }; let update = Arc::new(update); + eprintln!("UPDATE {:?}", &update); // split vie wthing would go here, see also update.piece p.gen_lastclient = gen; for (_tplayer, tplupdates) in &mut g.updates { diff --git a/src/sse.rs b/src/sse.rs index af6d62b1..6d7b14ef 100644 --- a/src/sse.rs +++ b/src/sse.rs @@ -113,6 +113,7 @@ impl Read for UpdateReader { write!(buf, "]\n\ id: {}\n\n", &self.to_send)?; + self.to_send.try_increment().unwrap(); } loop { diff --git a/templates/script.js b/templates/script.js index 85a45a62..c259a570 100644 --- a/templates/script.js +++ b/templates/script.js @@ -38,6 +38,7 @@ general_timeout = 10000; messages = Object(); +pieceops = Object(); var our_dnd_type = "text/puvnex-game-server-dummy"; api_queue = []; api_posting = false; @@ -232,10 +233,16 @@ messages.LogUpdate = function(data) { // ----- test counter, startup ----- -messages.PieceUpdate = function(data) { - console.log('PIECE UPDATE ',data) - var piece = data[0]; - var info = data [1]; +messages.Piece = function(j) { + console.log('PIECE UPDATE ',j) + var piece = j.piece; + var m = j.op; + var k = Object.keys(m)[0]; + pieceops[k](piece, m[k]); +} + +pieceops.Modify = function (piece, info) { + console.log('PIECE UPDATE MODIFY ',piece,info) var uelem = document.getElementById('use'+piece); var delem = document.getElementById('defs'+piece); delem.innerHTML = info.svgs; @@ -247,6 +254,15 @@ messages.PieceUpdate = function(data) { } else { set_grab(uelem, piece, info.held); } + console.log('MODIFY DONE'); +} + +messages.Recorded = function(j) { + var pelem = document.getElementById('piece'+j.piece); + if (j.cseq >= pelem.dataset.cseq) { + delete pelem.dataset.cseq; + } + gen = j.gen; } function startup() { @@ -265,21 +281,17 @@ function startup() { es.onmessage = function(event) { console.log('GOTEVE', event) var j = JSON.parse(event.data); - var k = Object.keys(j)[0]; - messages[k](j[k]); + var tgen = j.pop(); + for (var m of j) { + var k = Object.keys(m)[0]; + messages[k](m[k]); + } + gen = tgen; } es.addEventListener('commsworking', function(event) { console.log('GOTDATA', event); status_node.innerHTML = event.data; }); - es.addEventListener('recorded', function(event) { - var j = JSON.parse(event.data); - var pelem = document.getElementById('piece'+j.piece); - if (j.cseq >= pelem.dataset.cseq) { - delete pelem.dataset.cseq; - } - gen = j.gen; - }); es.onerror = function(e) { console.log('FOO',e,es); json_report_error({