Skip to content

Commit

Permalink
Distributed Web Crawler, first version
Browse files Browse the repository at this point in the history
  • Loading branch information
ajlopez committed Apr 27, 2013
1 parent 068b42f commit 6ba5dba
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 4 deletions.
6 changes: 2 additions & 4 deletions lib/ajfabriq.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,9 +136,9 @@ function canProcess(filter, message, processors) {
for (var n in processors) {
var processor = processors[n];
var filter = processor.filter;
var processors = processor.processors;
var subprocessors = processor.processors;

if (canProcess(filter, message, processors))
if (canProcess(filter, message, subprocessors))
return true;
}

Expand Down Expand Up @@ -239,7 +239,6 @@ function Channel(socket) {
if (line == null || line.length <= 1)
continue;

console.log('Received', line);
try {
var message = JSON.parse(line);
}
Expand All @@ -264,7 +263,6 @@ function Channel(socket) {
this.post = function (name, message) {
var msg = { name: name, message: message };
var text = JSON.stringify(msg);
console.log("Sending", text);
this.socket.write(text+"\n");
};
}
Expand Down
29 changes: 29 additions & 0 deletions samples/WebCrawler/client.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

/**
* Module dependencies.
*/

var net = require('net'),
ajfabriq = require('../../'),
resolver = require('./resolver'),
downloader = require('./downloader'),
harvester = require('./harvester');

var host = ajfabriq.createLocalHost();

/**
* Application configuration.
*/

var app = host.createProcessor({ application: 'webcrawler' });
harvester.createProcessor(app);
downloader.createProcessor(app);

var socket = new net.Socket();

socket.connect(3000, 'localhost',
function() {
host.connect(new ajfabriq.Channel(socket), true);
}
);

30 changes: 30 additions & 0 deletions samples/WebCrawler/server.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@

/**
* Module dependencies.
*/

var ajfabriq = require('../../'),
resolver = require('./resolver'),
downloader = require('./downloader'),
harvester = require('./harvester');

/**
* Host.
*/

var host = ajfabriq.createLocalHost();

/**
* Application configuration.
*/

var link = process.argv[2];

var app = host.createProcessor({ application: 'webcrawler' });
resolver.createProcessor(app, link);
harvester.createProcessor(app);
downloader.createProcessor(app);

host.listen(3000);

host.process({ application: 'webcrawler', action: 'resolve', link: link });

0 comments on commit 6ba5dba

Please sign in to comment.