Für Angular4 wird empfohlen TypeScript Server Events Client im servicestack-client npm package die für alle Server-Ereignisse API High-Level-ServiceStack Zugang zu nutzen bietet.
könnten Sie möglicherweise Observablen erstellen für jedes der Ereignisse, die Sie interessiert sind, z:
var onMessage, onException, onJoin, CustomMessage;
let onMessage$ = Observable.create((observer) => {
onMessage = (msg:ServerEventMessage) => {
this.zone.run(() => observer.next(msg));
};
onException = (e:Error) => observer.error(error);
}
let onJoin$ = Observable.create((observer) => {
onJoin = (msg:ServerEventJoin) => {
this.zone.run(() => observer.next(msg));
};
}
let customMessage$ = Observable.create((observer) => {
CustomMessage = (msg:CustomMessage) => {
this.zone.run(() => observer.next(msg));
};
}
const client = new ServerEventsClient("/", channels, {
handlers: {
onConnect: (sub:ServerEventConnect) => { // Successful SSE connection
console.log("You've connected! welcome " + sub.displayName);
},
onJoin,
onMessage,
CustomMessage
},
onException
})
.start();
Aber ich bin nicht vertraut genug mit RxJS zu wissen, ob dies der beste Weg ist RxJS zu verwenden.