2012-06-19 2 views
1

Я новичок в node.js и в настоящее время работает на сервере tcp. Я хочу, чтобы все сообщения отправлялись клиенту в сжатом формате. Я использую zlib для этой цели.Node.js: zlib Сжатие в подключении tcp

Следующий образец кода на стороне сервера:

zlib.deflate(response.toString(), function(err, buffer) { 
      if (!err) { 
      session.xmlSocket.writeString(buffer); 
      } 
      }); 

Эта функция в основном сжимает данные и записывает его в код socket.The на стороне клиента, что распаковать эти данные:

this.socket.on("data", function(chunk){ 
    zlib.unzip(chunk, function(err, buffer) { 
    if (!err) { 
      self.parser.write(buffer.toString()); 
     console.log(buffer.toString()); 
     } 
    }); 

Теперь этот код отлично работает, когда я запускаю как клиент, так и сервер на одном и том же pc.But, правильно ли правильно написать объект Buffer, возвращаемый функцией zlib.deflate, и записать его в сокет, а затем использовать его на стороне клиента ?

ответ

0

Не отправляйте необработанный объект. Попробуйте buffer.toString().

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