Node.jsのTCPソケットを利用してLuaプログラムと通信しようとしています。私が頭を悩ませようとしている2つの問題があります。まず、バッファリングします。
バッファー私が理解しているように、データがソケットからコードに提供される場合、それはこれまでに受信されたデータ(パケットではなくストリーム)になります。そのため、受信したデータを読み取ると、送信されたデータとは異なる場合があります。
つまり、受け取ったデータ{学校:["長い
送信されたデータとの比較{学校:[{"Longwood"、"Hillbrow"}]}
これを回避する方法は、データを「バッファ」に入れ、その情報の終わりを表示するために使用する方法でデータを分割することです。通常、改行のように見えます。
ここでの私の質問:
- バッファ内に2つ以上の完全なデータセクションが含まれることになりますか?これをどのように処理しますか?forループ?
- 同じ問題が、ソケットを離れるデータにも存在するようです。ただし、他のコード例では、ソケットに書き込む前にNode.jsバッファーを使用していることに気づきました。なぜこれが受信データに使用されないのですか?
- 残すために処理できるよりも多くのデータが書き込まれる場合、Nodeはこれを処理しますか、それともメソッドを考え出す必要がありますか。
最後に、私はデータ側を誤解しているようです。送受信されたすべてのデータをバイナリに変換して戻す必要がありますか?JSONデータのみを送受信したい。そこに私の混乱があると思います。例えば:
var myQuestion = "Is this acceptable and will I encounter any issues?
socket.write(myQuestion);
お時間をいただき、ありがとうございました。