|
|
@@ -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; |
|
|
|
}); |