12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { Observable, Subject } from "rxjs";
- import { FisAppActor, FisMessage } from "../interface/transport.interface";
- import { MessageTransmissionBase } from "../transmission/msg.transmission.base";
- import dotenv from 'dotenv';
- /* These are the purple fonts. Gonna interact with blue fonts to set up the credentials to establish the necessary roles.
- Assuming the primary role is server. That means we will need transmitter and multiple receiver profiles that are connected. */
- class Application implements FisAppActor {
- incomingMessageBus!: Subject<FisMessage>
- outgoingMessageBus!: Subject<FisMessage>
- transmissionService!: MessageTransmissionBase
- constructor(messageTransmissionBase: MessageTransmissionBase) {
- this.transmissionService = messageTransmissionBase
- this.incomingMessageBus = messageTransmissionBase.incomingMessageBus
- this.outgoingMessageBus = messageTransmissionBase.outgoingMessageBus
- }
- send(message: FisMessage): Observable<FisMessage> {
- return new Observable((response) => {
- this.outgoingMessageBus.next(message)
- this.incomingMessageBus.subscribe({
- next: (message: FisMessage) => {
- if (message.header.messageID == message.header.messageID) {
- response.next(message)
- }
- if (message.header.messageID == message.header.messageID && message.data == 'Complete') {
- response.complete()
- }
- },
- error: error => response.error(error)
- })
- })
- }
- emit(message: FisMessage): void {
- this.outgoingMessageBus.next(message)
- }
- emitStream(message: FisMessage): void {
- this.outgoingMessageBus.next(message)
- }
- subscribeMessages(messageFilter: any): Observable<FisMessage> {
- throw new Error(`Unavailable for now....`)
- }
- }
- const application = new Application(new MessageTransmissionBase())
|