Mercurial > hg > rlgwebd
diff shterm.js @ 13:bf7c26d0b66d
webtty: switch upward protocol to JSON
Switch the client-to-server messages from the HTML forms format to
JSON (for the webtty app). Message numbers are sent but not yet used.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Sun, 13 May 2012 20:50:13 -0700 |
parents | 9e1d83f50c9e |
children | 155f3c104759 |
line wrap: on
line diff
--- a/shterm.js Sun May 13 08:47:35 2012 -0700 +++ b/shterm.js Sun May 13 20:50:13 2012 -0700 @@ -2,6 +2,9 @@ * is running a shell via the webtty.js server. */ +/* The number of the next packet to send. */ +var nsend = 0; + // A state machine that keeps track of polling the server. var ajaxstate = { state: 0, @@ -169,10 +172,11 @@ function sendback(str) { /* For responding to terminal queries. */ + var formdata = {"t": "d", "n": nsend++, "d": str}; var datareq = new XMLHttpRequest(); datareq.onreadystatechange = postResponseHandler; datareq.open('POST', '/feed', true); - datareq.send("keys=" + str); + datareq.send(JSON.stringify(formdata)); return; } @@ -214,10 +218,11 @@ } if (termemu.alive) ev.preventDefault(); + var formdata = {"t": "d", "n": nsend++, "d": code}; var datareq = new XMLHttpRequest(); datareq.onreadystatechange = postResponseHandler; datareq.open('POST', '/feed', true); - datareq.send("keys=" + code); + datareq.send(JSON.stringify(formdata)); //dkey(code); return; } @@ -263,10 +268,11 @@ else return; //writeData("Sending " + keystr); + var formdata = {"t": "d", "n": nsend++, "d": code}; var datareq = new XMLHttpRequest(); datareq.onreadystatechange = postResponseHandler; datareq.open('POST', '/feed', true); - datareq.send("keys=" + keystr); + datareq.send(JSON.stringify(formdata)); return; } @@ -300,6 +306,7 @@ function login(h, w) { if (termemu.alive) return; + params = {"login": true, "h": h, "w": w}; var req = new XMLHttpRequest(); req.onreadystatechange = function () { if (req.readyState == 4 && req.status == 200) { @@ -308,6 +315,7 @@ /* Success */ termemu.resize(logindict.h, logindict.w); termemu.alive = true; + nsend = 0; setTitle("Logged in"); debug(1, "Logged in with id " + logindict.id); getData(); @@ -317,7 +325,8 @@ } }; req.open('POST', '/login', true); - req.send("login=login&h=" + String(h) + "&w=" + String(w)); + req.send(JSON.stringify(params)); + //req.send("login=login&h=" + String(h) + "&w=" + String(w)); return; } @@ -332,7 +341,7 @@ } }; req.open('POST', '/feed', true); - req.send("quit=quit"); + req.send(JSON.stringify({"t": "q", "n": nsend++})); return; }