Oops, pedantic error.  Should be:

var unzipper = new zlib.Unzip()

(Though, the function detects this and does the right thing anyway.)

On Wed, Feb 1, 2012 at 11:03, Isaac Schlueter <[email protected]> wrote:
> The zlib.unzip() method assumes that you have *all* the data.  HTTP
> requests in node send the data bit by bit.  It's possible that what
> you have in that first chunk isn't the whole gzip'ed file.
>
> If you want to process it one chunk at a time (which is probably best)
> use a zlib.Unzip() object rather than the convenience method.
>
> var unzipper = zlib.Unzip()
> req.on("data", function (c) {
>  unzipper.write(c)
> })
> req.on("end", function () {
>  unzipper.end()
> })
> unzipper.on("data", function (c) {
>  // some unzipped data
> })
> unzipper.on("end", function () {
>  // no  more unzipped data is coming
> })
>
>
> On Wed, Feb 1, 2012 at 08:01, Rambo <[email protected]> wrote:
>> Please help I don't know what's happening.
>> I'm connecting to Gnip stream api which emits json messages using gzip. But
>> when I try to unzip incoming data, I get an empty buffer!
>>
>> This is the code that makes the request. Basically it's the same as the
>> example given in http://nodejs.org/docs/latest/api/zlib.html#zlib.Unzip
>>
>> var options = {
>> host : 'stream.gnip.com',
>> port : 443,
>> method : 'get',
>> path : '/track/prod.json',
>> headers : {
>> 'Authorization' : self._basicAuth(self.options.username,
>> self.options.password),
>> 'User-Agent' : self.options.userAgent,
>> 'Accept-Encoding' : 'gzip,deflate'
>> }
>> };
>>
>> self._req = https.request(options, function(res) {
>> self.emit('ready');
>> res.on('data', function(chunk) {
>> console.log(chunk.toString()) // this prints a lot of strange stuff
>> zlib.unzip(chunk, function(err, res) {
>> console.log(res.toString()) // empty!
>> if (err) self.emit('error', err);
>> else self.parser.receive(res);
>> });
>> });
>> res.on('end', function() {
>> self.emit('end');
>> });
>> });
>> self._req.on('error', function(e) {
>> self.emit('error', e);
>> self.end();
>> });
>> self._req.end();
>>
>> --
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines:
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to