javascript - Node.js:tcp 连接中的 zlib 压缩

标签 javascript node.js tcp buffer zlib

我是 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 对象写到套接字上,然后在客户端上使用是否正确?边?

最佳答案

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

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

关于javascript - Node.js:tcp 连接中的 zlib 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11096594/

相关文章:

javascript - 是否所有浏览器都支持 window.frameElement(用于同源 iframe)?

c - 进程未终止

c - (C 套接字编程)来自服务器的单独 send() 调用在同一个客户端 recv() 缓冲区中结束

javascript - 在另一个文件中带有数组的函数中未定义

node.js - Expressjs删除静态文件夹

node.js - 将 Node.js 应用程序部署到 Heroku 时出现应用程序错误

C++ TCP 套接字插件

javascript - 如何显示一年中的所有事件?

javascript - 无法从js对象中删除键值对

javascript - jQuery slideToggle 动态调整位置?