import { Injectable } from '@angular/core'; import { Subject, Observable } from 'rxjs'; import { BroadcastMessage } from './broadcast.payload'; import { IBroadcastService } from './broadcast.interface'; @Injectable() export class BroadcastService implements IBroadcastService { private message: Subject>; constructor() { this.initialize(); } private initialize(): void { this.message = new Subject>(); } public publishMessage(message: BroadcastMessage): void { this.message.next(message); } public receiveMessage(): Observable> { return this.message.asObservable(); } }