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 [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
---
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 [email protected].
For more options, visit https://groups.google.com/groups/opt_out.