Node.js: Difference between revisions
Appearance
| Line 52: | Line 52: | ||
ab -n 1000 -c 100 http://localhost:8000 | ab -n 1000 -c 100 http://localhost:8000 | ||
</pre> | </pre> | ||
We can compare this with the [http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Example_session Example] from Hypertext Transfer Protocol in Wikipedia. | |||
= tcp server = | = tcp server = | ||
Revision as of 15:57, 19 October 2013
node.js prompt
How to exit
brb@brb-P45T-A:~/Downloads$ node > Math.random() 0.14142140373587608 > .exit
http server
http://www.youtube.com/watch?v=jo_B4LTHi3I
First create a js file
var http = require('http');
var s = http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Hello \n');
setTimeout(function() {
res.end("world\n");
}, 2000);
});
s.listen(8000);
Then using node program to run the js script. We can test the program by using a web browser or curl program.
# Terminal 1 node web-server.js # Terminal 2 curl http://localhost:8000 OR use "-i" to include HTTP-header in the output curl -i http://localhost:8000
The output I get is
$ curl -i http://localhost:8000 HTTP/1.1 200 OK Content-Type: text/plain Date: Sat, 19 Oct 2013 20:55:17 GMT Connection: keep-alive Transfer-Encoding: chunked Hello world
Test the http server
ab -n 1000 -c 100 http://localhost:8000
We can compare this with the Example from Hypertext Transfer Protocol in Wikipedia.
tcp server
Simple example
Create <tcp-server.js> file
var net= require('net')
var server = net.createServer(function(socket) {
socket.write('hello\n');
socket.end('world\n');
});
server.listen(8000);
After running this program, we can test it by using telnet or nc.
telnet localhost 8000 OR nc localhost 8000
Echo server
var net= require('net')
var server = net.createServer(function(socket) {
socket.write('hello\n');
socket.write('world\n');
socket.on('data', function(data) {
socket.write(data);
});
});
server.listen(8000);
Chat server
net = require('net');
var sockets = [];
var s = net.Server(function(socket) {
sockets.push(socket);
socket.on('data', function(d) {
for(var i=0; i<sockets.length; i++) {
if (sockets[i] == socket) continue;
sockets[i].write(d);
}
});
socket.on('end', function() {
var i = socksets.indexOf(socket);
sockets.splice(i, 1);
});
});
s.listen(8000);
Test it by
Terminal 1: telnet localhost 8000
Terminal 2: telnet localhost 8000
http get
$ cat hello-world-server.js
setInterval(function() {
console.log("world");
}, 2000)
console.log("hello");
var http = require('http')
setInterval(function() {
console.log("fetching google.com");
http.get({ host: 'google.com' }, function(res) {
console.log(res.headers);
});
}, 2000)
console.log("hello");