更新: JS が有効であることを確認する必要があるため、JSON.parse を使用して有効な JSON であるかどうかを確認できます。これは常に Chrome で利用できるはずです。arraybuffer を文字列に変換してアキュムレータ文字列に追加し、各反復後にその文字列に対して次のチェックを実行できます。
function isValidJSON(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
};
// assuming 16bit uint unicode chars
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}
以下は、使用できるコールバック関数の例です。
jsonData = "";
function readJSONFromSocket(object readInfo) {
// Arraybuffer to string
partialJSONData = ab2str(readInfo.data);
// Loop through the chars until we get a valid JSON object
for (var x = 0; x < partialJSONData.length; x++) {
// Build up the JSON character by character
jsonData += partialJSONData.charAt(x);
if (isValidJSON(jsonData)) {
console.log(jsonData);
// Do something here
jsonData = "";
}
}
};