Stéphane,

That's not really a challenge ;-)

The second example is too simple to be useful, but this would be the Zn 
equivalent:


(ZnServer defaultOn: 1337)
        logToTranscript;
        delegate: (ZnValueDelegate with: [ :request | 
                ZnResponse ok: (ZnEntity text: 'Hello World!') ]);
        start.
        
ZnClient get: 'http://localhost:1337'.

(ZnServer defaultOn: 1337)
        logToTranscript;
        delegate: (ZnValueDelegate with: [ :request | 
                ZnResponse ok: (ZnEntity with: request contents) ]);
        start.

ZnClient post: 'http://localhost:1337' data: (ZnEntity text: 'Echo').

ZnServer stopDefault.


Smalltalk is a beautiful language, isn't it ?

Sven

PS: the delegate object has to respond to #handleRequest:. In earlier versions, 
it was a block, now ZnValueDelegate translates #handleRequest: to #value:. I 
thought that was clearer. For publicity reasons, maybe I could add a 
#delegateBlock: convencience accessor.


On 30 Jun 2011, at 17:07, Stéphane Ducasse wrote:

> Hi guys
> 
> apparently people get excited by nodeJS and I would like to know the 
> equivalence of
> 
> var http = require('http');
> http.createServer(function (req, res) {
>  res.writeHead(200, {'Content-Type': 'text/plain'});
>  res .end('Hello World\n');
> }).listen(1337, "127.0.0.1");
> 
> console.log('Server running at http://127.0.0.1:1337/');
> To run the server, put the code into a file example.js and execute it with 
> the node program:
> 
> % node example.js
> Server running at http://127.0.0.1:1337/
> 
> 
> Here is an example of a simple TCP server which listens on port 1337 and 
> echoes whatever you send it:
> 
> var net = require('net');
> var server = net.createServer(function (socket) {
>  socket.write("Echo server\r\n");
>  socket.pipe(socket);
> });
> 
> server.listen(1337, "127.0.0.1");
> 
> 
> we should communicate better :)
> 
> Stef


Reply via email to