RxJS: Observable.webSocket () получить доступ к onopen, onclose…

1
const ws = Observable.webSocket('ws://…');
ws.subscribe(
  message => console.log(message),
  error => console.log(error),
  () => {},
);

Я хочу наблюдать мое соединение с WebSocket с RxJS. Реагируя на события onmessage, подписываясь на наблюдаемые работы, как шарм. Но как я могу получить доступ к onopen событию WebSocket? И можно ли запустить метод WebSocket .close()? RxJS для меня довольно новичок, и я проводил исследования в течение нескольких часов, но, возможно, я просто не знаю правильных условий. Заранее спасибо.

Теги:
rxjs
websocket
rxjs5

1 ответ

2
Лучший ответ

Глядя на исходный код Websocket, есть объект конфигурации WebSocketSubjectConfig который содержит наблюдаемые, которые вы можете связать с разными событиями. Вы должны иметь возможность передать NextObserver набранный NextObserver в значение конфигурации openObserver следующим образом:

const openEvents = new Subject<Event>();
const ws = Observable.webSocket({
  url: 'ws://…', 
  openObserver: openEvents 
});

openEvents
  .do(evt => console.log('got open event: ' + evt))
  .merge(ws.do(msg => console.log('got message: ' + msg))
  .subscribe();
  • 0
    Спасибо! Ваше объяснение сделало некоторые вещи более понятными для меня.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню