«

Sep 24

Serveur de téléchargement en nodeJS

NodeJS

NodeJS

Je viens de réaliser ma première application NodeJS. Un serveur de téléchargement qui revoit les données depuis un site web. Le client est le console JavaScript de navigateur. Un traitement est fait pour déterminer les éléments à télécharger. Le code complet du client WebSocket n’est pas présenté ici pour des raison de confidentialité.

 

 

Le code du client

var wsDl = new WebSocket("ws://localhost:8001");
var url = "xxx";
var fileName = "yyy";
wsDl.send(JSON.stringify({cmd: 'download', 'title': fileName, url: url}));

Le code du serveur

var ws = require("nodejs-websocket");
var http = require('http');
var fs = require('fs');
var util = require('util');
 

function saveToFile(fileName, url)
{
	var file = fs.createWriteStream(fileName+'.m4a');
	var request = http.get(url, function(response) 
	{
  		response.pipe(file);
	});
}

var server = ws.createServer(function (conn) 
{
    conn.on("text", function (data) 
    {
    	data = eval('('+ data + ')');
    	var cmd = data.cmd;
        var title = data.title;
        var url = data.url;

        console.log('Prepare to download => ' + url);

        if(cmd == 'download')
        {
        	saveToFile(title, url);
        }
    });

    conn.on("version", function (str) 
    {
        conn.sendText("xxx - Downloader 0.0");
    });

}).listen(8001);