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());
      }
    });

现在,当我在同一台电脑上同时运行客户端和服务器时,这段代码可以正常工作。但是直接编写 zlib.deflate 函数返回的 Buffer 对象并将其写入套接字然后在客户端使用它是否正确?

4

1 回答 1

0

不要发送原始对象。试试 buffer.toString()。

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

于 2012-06-19T07:58:23.250 回答