12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import { BehaviorSubject, Subject } from 'rxjs';
- import { ColorCode, Message, ReportStatus, ConnectionAttribute, ConnectionRequest } from '../interfaces/general.interface';
- import { GrpcServiceMethod } from './grpc.service.method';
- import { FisRetransmissionService } from './fis.retransmission.service';
- export class ServerClientManager {
- private connectionAttributes: ConnectionAttribute[] = []
- private request: ConnectionRequest | any
- constructor(private grpcService: GrpcServiceMethod) {
- }
- public restartServerInDuration(time: number) {
- console.log(this.request)
- console.log(this.connectionAttributes)
- this.grpcService.shutDownServer().then((msg: string) => {
- console.log(msg)
- setTimeout(() => {
- this.generateConnection(this.request)
- }, time * 1000)
- })
- }
- public generateConnection(request: ConnectionRequest) {
- this.request = request
- let database: string
- if (request.database) {
- database = request.database
- } else {
- database = request.server.name + request.client.name
- }
- let initialReport: ReportStatus = { code: ColorCode.YELLOW, message: 'Initialization of the subject' }
- let reportSubject: BehaviorSubject<ReportStatus> = new BehaviorSubject(initialReport)
- let retransmission: FisRetransmissionService = new FisRetransmissionService(database, reportSubject)
- let messageToBePublished: Subject<Message> = retransmission.handleMessage(request.server.messageToBePublishedfromApplication) ?? request.server.messageToBePublishedfromApplication
- let connectionAttribute: ConnectionAttribute = {
- ConnectionID: {
- local: '',
- remote: ''
- },
- outGoing: {
- MessageToBePublished: messageToBePublished,
- MessageToBeReceived: null
- },
- inComing: {
- MessageToBePublished: null,
- MessageToBeReceived: request.client.messageToBeReceivedFromRemote
- },
- connectionStatus: reportSubject
- }
-
- if (!request.server.connectionType) {
- request.server.connectionType = 'GRPC'
- }
-
- if (request.server.connectionType == 'GRPC') {
- this.grpcService.create(request, connectionAttribute)
- this.connectionAttributes.push(connectionAttribute)
- }
- }
- }
|