1

私は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 オブジェクトを直接書き込み、それをソケットに書き込み、クライアント側で使用するのは正しいですか?

4

1 に答える 1

0

生のオブジェクトを送信しないでください。buffer.toString()を試してください。

session.xmlSocket.writeString(buffer.toString());

于 2012-06-19T07:58:23.250 に答える