ノードjsのbinaryjsモジュールを使用して、クライアント側からバッファを渡しています。このバッファには、最終的にサーバーで解析するパイプ区切りの文字列が含まれています。
クライアント側では、String を Uint8Array に変換します。私の文字列は次のようになります。
var stringToConvert = 'A_1_22|B_2_33|C_3_44';
この Uint8Array がサーバーに渡されると、Buffer として受信されます。最初に Buffer を配列にチャンクします。
var parts = [];
// ...
// as data is received:
parts.push(data);
すべてのデータをストリーミングしたら、この配列を文字列に変換し、「|」で分割します。
var arrayString = parts.toString().split("|");
これにより、目的の配列出力が得られます。
arrayString = ['A_1_22', 'B_2_33', 'C_3_33'];
次に、この arrayString を繰り返し処理し、「_」で再度分割します。
for(var i = 0; i < arrayString.length; i++)
{
var thisArray = arrayString[i].split("_");
// ...
thisArray を反復処理して 2 番目と 3 番目の値を int に変換しようとすると、問題が発生します。
var intVal1 = parseInt(thisArray[1]); // returns NaN
var intVal2 = parseInt(thisArray[2]); // returns NaN
console.log(typeof thisArray[1]); // returns string
クライアント側で同じコードを実行すると、文字列が int に適切に変換されます。ここで何が足りないかわからない?