使用RxJS5,将下一条消息从Observable发送给其中一个订阅者的最佳方法是什么?更具体地说,我想将下一条消息发送给subscriber / observers列表中最老的订阅者。
这是我的尝试,但我无法验证它是否正确:
let obsClient = this.obsClient = new Subject<any>();
this.clientStream = Observable.create(sub => {
const push = Subscriber.create(v => {
// I assume that zeroeth element holds oldest sub
if(push === obsClient.observers[0]){
sub.next(v);
}
});
return obsClient.subscribe(push);
});
function onClientConnectionChange(clientCount) {
obsClient.next({
time: Date.now(),
clientCount: clientCount
});
}
正如您所看到的,我们推送到Subject,但是它被this.clientStream包装。任何订阅者都会订阅this.clientStream而不是this.obsClient。