|
@@ -5,11 +5,8 @@ import { v4 as uuidv4 } from 'uuid'
|
|
|
import { MessageTransmissionRequestResponse } from "./msg.transmission.request-response";
|
|
|
import { filter, Observable, Observer, Subject, Subscription, Unsubscribable } from "rxjs";
|
|
|
import ConsoleLogger from "../utils/log.utils";
|
|
|
-import { TransmitterAdapter } from "../adapters/adapter.transmitter"
|
|
|
-import { ReceiverAdapter } from "../adapters/adapter.receiver"
|
|
|
import { MessageTransmissionManagerBase } from "../base/msg.transmission.manager.base";
|
|
|
-import { ActorInterface, ActorProfile } from "../interface/actor.sample";
|
|
|
-import { GeneralEvent, TransmissionInterface, TransportServiceInterface } from "../interface/interface";
|
|
|
+import { AdapterInterface, ClientObject, GeneralEvent, TransmissionInterface } from "../interface/interface";
|
|
|
|
|
|
export class MessageTransmissionManager extends MessageTransmissionManagerBase {
|
|
|
private console: ConsoleLogger = new ConsoleLogger(`MessageTransmissionManager`, ['managers'])
|
|
@@ -17,11 +14,14 @@ export class MessageTransmissionManager extends MessageTransmissionManagerBase {
|
|
|
constructor(event: Subject<GeneralEvent<any>>, browserEnv?: boolean) {
|
|
|
super()
|
|
|
if (browserEnv) this.browserEnv = browserEnv
|
|
|
- this.console.log({ message: `Constructing self...` })
|
|
|
+ this.console.log({ message: `Contructing self... ${this.browserEnv ? `is receiving end` : `is not browser env`}` })
|
|
|
this.event = event
|
|
|
// Subscribe for adapterManager and it's relevent event
|
|
|
- this.adapterManager = new AdapterManager(event)
|
|
|
- this.adapterManager
|
|
|
+ this.adapterManager = new AdapterManager(event, this.browserEnv)
|
|
|
+ // this.adapterManager.subscribeForAdapters().subscribe(this.event)
|
|
|
+ this.adapterManager.subscribeForAdapters().subscribe((adapterEvent: GeneralEvent<AdapterInterface>) => {
|
|
|
+ this.event.next(adapterEvent)
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
public subscribeForTransmission(): Observable<GeneralEvent<TransmissionInterface>> {
|
|
@@ -29,12 +29,12 @@ export class MessageTransmissionManager extends MessageTransmissionManagerBase {
|
|
|
const subscription: Subscription = this.event.pipe(
|
|
|
filter(event => event.type === `Transport Event`),
|
|
|
filter(event => event.event === `New Client` || event.event === `New Server`)
|
|
|
- ).subscribe(event => {
|
|
|
+ ).subscribe((event: GeneralEvent<ClientObject>) => {
|
|
|
// get all adapters for all the connection
|
|
|
- let transmission: TransmissionInterface | undefined = this.instantiateTransmissionComponents(event?.data?.clientId, this.event)
|
|
|
- this.console.log({ message: `Passing this transmission<${transmission.clientId}> to global event bus.` })
|
|
|
+ let transmission: TransmissionInterface | undefined = this.instantiateTransmissionComponents(event.data, this.event)
|
|
|
+ this.console.log({ message: `Passing this transmission for client:${transmission.clientId} to global event bus.` })
|
|
|
if (transmission) {
|
|
|
- observer.next({
|
|
|
+ this.event.next({
|
|
|
id: uuidv4(),
|
|
|
type: `Transmission Event`,
|
|
|
event: 'New Transmission',
|
|
@@ -51,16 +51,16 @@ export class MessageTransmissionManager extends MessageTransmissionManagerBase {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- protected instantiateTransmissionComponents(clientId: string, eventRef: Subject<GeneralEvent<any>>): TransmissionInterface {
|
|
|
- let receiverInstance: MessageTransmissionReceiver = new MessageTransmissionReceiver(clientId, eventRef)
|
|
|
- let transmitterInstance: MessageTransmissionTransmitter = new MessageTransmissionTransmitter(clientId, eventRef)
|
|
|
+ protected instantiateTransmissionComponents(clientObj: ClientObject, eventRef: Subject<GeneralEvent<any>>): TransmissionInterface {
|
|
|
+ let receiverInstance: MessageTransmissionReceiver = new MessageTransmissionReceiver(clientObj.clientId, eventRef)
|
|
|
+ let transmitterInstance: MessageTransmissionTransmitter = new MessageTransmissionTransmitter(clientObj.clientId, eventRef)
|
|
|
let requestResponseInstance: MessageTransmissionRequestResponse = new MessageTransmissionRequestResponse(transmitterInstance, receiverInstance, eventRef)
|
|
|
let transmissionObj: TransmissionInterface = {
|
|
|
- clientId: clientId,
|
|
|
+ clientId: clientObj.clientId,
|
|
|
transmitter: transmitterInstance,
|
|
|
receiver: receiverInstance,
|
|
|
requestResponse: requestResponseInstance,
|
|
|
- event: this.event
|
|
|
+ clientInfo: clientObj
|
|
|
}
|
|
|
|
|
|
return transmissionObj
|