私はnode.jsが初めてで、現在tcpサーバーで作業しています。すべてのメッセージを圧縮形式でクライアントに送信する必要があります。この目的で zlib を使用しています。
次のサンプルは、サーバー側のコードです。
zlib.deflate(response.toString(), function(err, buffer) {
if (!err) {
session.xmlSocket.writeString(buffer);
}
});
この関数は、基本的にデータを圧縮してソケットに書き込みます。そのデータを解凍するクライアント側のコードは次のとおりです。
this.socket.on("data", function(chunk){
zlib.unzip(chunk, function(err, buffer) {
if (!err) {
self.parser.write(buffer.toString());
console.log(buffer.toString());
}
});
このコードは、同じ pc でクライアントとサーバーの両方を実行すると正常に動作しますが、zlib.deflate 関数によって返された Buffer オブジェクトを直接書き込み、それをソケットに書き込み、クライアント側で使用するのは正しいですか?