I am trying to compress output from node js application. I am able to 
compress the text string successfully on server side. But the header sent 
with it says HTML/plain text

so browser is not able to decompress it 

I am using node v0.6.18

my code is as follows:

    var http  = require('http'),
url   = require('url'),
fs    = require('fs'),
amqp  = require('amqp'),
redis = require('redis'),
zlib  = require('zlib'),    
sys   = require(process.binding('natives').util ? 'util' : 'sys');
var exchangeName= 'conferenceTest';

send404 = function(res) {
    res.writeHead(404);
    res.write('404');
    res.end();};

server = http.createServer(function(req, res) {
    var path = url.parse(req.url).pathname;
    switch (path) {

        case '/':

            fs.readFile(__dirname + "/index.html", function(err, data) {

                if (err) {
                    return send404(res);
                } else {
                    res.writeHead(200, {'Content-Type': 
'application/zip','Connection':'close', 'content-encoding': 'gzip'});
                    res.write(data, 'utf8');
                    res.end();
                }

            });
        break;
    }
});
// listen to the http server for socket connectionsvar io = 
require('socket.io').listen(server); 
var connection = amqp.createConnection({host: 'localhost'});

connection.on('ready', function() {

    var exchange = connection.exchange(exchangeName, { // create exchange
        type: 'direct',
        durable: true
    });

    io.set('close timeout',500);
    io.set('browser client gzip',true);

    io.sockets.on('connection', function(client) {
        console.log("client connected");

        client.on('setQueue', function(data) { 
            var queue = connection.queue(data.queueName, { 
                durable: true,
                autoDelete: false
            });
        });

            /************************** CHANGE VIEW EVENT HANDLER STARTS 
**************************/
                    client.on('changeview', function(data) {
                            var queue = connection.queue(data.queueName, { 
//create queue
                                    durable: true,
                                    autoDelete: false
                            });

                            var plaintext = "Put any kind of meat on a stick 
and roast it over a flame and it immediately becomes food fit for gods. No 
country understands this sacred rule of seared meat like Turkey.Turkish kebabs 
are the incarnation of the meat lovers most exotic fantasies, with grilled 
lamb, beef and chicken as skewer MVPs.Most kebab restaurants also have a long 
list of Turkish starters called meze that are as delicious as the main 
dishes.Turkeys best alcoholic complement for all that meat is raki -- an 
aniseed-flavored drink that s often diluted with water and chilled with ice. 
Frothy, yogurt-based ayran is a great non-alcoholic complement to heavy dishes. 
But who are we kidding -- you just want the meat. Heres where to get it in 
Turkey.";

                            zlib.deflate(plaintext, function(err, buffer) {
                             if (!err) {
                                console.log("Original   Length: " + 
plaintext.length);
                                console.log("Compressed Length: " + 
buffer.toString('base64').length);
                                io.sockets.emit('changeview', 
buffer.toString('base64'));
                              }
                            });
                    });



    });
});

    process.on( 'uncaughtException', function ( err ) {
   console.log( 'Uncaught Exception: ' + err.message );
   });

    server.listen(18080);

Any ideas or help would be greatly appreciated

-- 
-- 
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 nodejs@googlegroups.com
To unsubscribe from this group, send email to
nodejs+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

--- 
You received this message because you are subscribed to the Google Groups 
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nodejs+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to