| @@ -22,7 +22,7 @@ class RPCConn { | |||
| obj = JSON.parse(json); | |||
| } catch (err) { | |||
| console.log("Failed to parse JSON: '"+json+"'"); | |||
| throw err; | |||
| return; | |||
| } | |||
| if (obj.id == null) { | |||
| @@ -46,14 +46,17 @@ class RPCConn { | |||
| //Digest JSON lines as they come, but only if they're a whole line | |||
| var currdata = ""; | |||
| this.sock.on("data", d => { | |||
| var s = d.toString(); | |||
| currdata += s; | |||
| var arr = s.split("\n"); | |||
| while (arr[1] != null) { | |||
| onjson(arr.shift()); | |||
| arr.shift(); | |||
| currdata += d.toString(); | |||
| var start = 0; | |||
| for (var i = 0; i < currdata.length; ++i) { | |||
| if (currdata[i] === "\n") { | |||
| var s = currdata.substring(start, i); | |||
| start = i + 1; | |||
| onjson(s); | |||
| } | |||
| } | |||
| currdata = arr[0] || ""; | |||
| currdata = currdata.substring(start); | |||
| }); | |||
| } | |||
| @@ -79,7 +82,6 @@ class RPCConn { | |||
| else resolve(res); | |||
| } | |||
| console.log("Sending '"+json+"'"); | |||
| this.sock.write(json+"\n"); | |||
| this._id += 1; | |||
| }); | |||