Как правильно превратить WS-сервер в RXJS Api без объектов в NodeJs
Каков правильный способ превратить знаменитый модуль ws в реактивный api в Node.js?
Я понимаю, что испытуемые могут помочь в устранении нереактивных реактивных событий, но их проблема в том, что им гораздо сложнее распоряжаться своими зависимыми объектами.
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({ port: 8080 });
var Rx = require('rx');
var connectionMessageSubject = new Rx.Subject();
wss.on('connection', function connection(client) {
ws.on('message', function incoming(message) {
connectionMessageSubject.onNext({
client: client,
message: message
});
});
});
Ответы
Ответ 1
Следующий код моделирует поведение subject
.
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({port:8080});
var connectionMessage$ = new Rx.Observable(function (observer) {
wss.on('connection', function connection(client){
client.on('message', function (message){
observer.next({
client: client,
message: message,
})
});
});
});
connectionMessage$.subscribe(function (cm) {
// cm.client for client
// cm.message for message
});