Подтвердить что ты не робот

Как правильно превратить 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
    });
  });
});
4b9b3361

Ответ 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
});