Реализация HTTP-сервера RxJS + node.js?

Я хорошо работал с node.js до реализации RxJS.

Вот мой пробный код для изучения-

Reactive -Extensions/rxjs -nodehttps://github.com/Reactive-Extensions/rxjs-node


rx _http.js
(RxJS-оболочка http-библиотеки node.js)

var Rx = require("./rx.min");
var http = require("http");
for(var k in http)
{
    exports[k] = http[k];
}
exports.createServer = function ()
{
    var subject = new Rx.AsyncSubject();
    var observable = subject.asObservable();
    observable.server = http.createServer(function (request, response)
    {
       subject.onNext({ request:request, response:response });
       subject.onCompleted();
    });
    return observable;
};

server.js

var http = require('./rx_http');

// rxServer
var serverObservable = http.createServer();
var port = 3000;
serverObservable.server.listen(port);
console.log("Server listening on port: "+port);

// HTTP request event loop function
serverObservable.subscribe(function (data)
{
    var req = data.request;
    console.log(req.headers);

    var res = data.response;
    res.writeHead(200, {'Content-Type':"text/html"});
    res.end("hello world");

    console.log("res content out");
});

// exceptiopn
process.on('uncaughtException', function (err)
{
    console.log(['Caught exception:', err.message].join(" "));
});

Код заканчивается одним -разовым выводом «hello world» в браузер, и RxServer перестает реагировать на другой доступ (перезагрузка браузера и т. д. ).

Я на пути к изучению RxJS, но в Интернете мало документации.

Скажите, что не так с кодом, и если вы знаете лучшие реализации, поделитесь, пожалуйста. Спасибо.

8
задан 2 May 2012 в 03:27
поделиться