123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175 |
- import { Observable, map, Subject, takeUntil, take, of, timer, from } from "rxjs";
- import { BaseMessage, ResponseMessage } from "../dependencies/fisappmessagejsutilty/dependencies/dependencies";
- import { LogSetting, MessageLog } from "../dependencies/fisloggingservice/type/datatype";
- import { ErrorTrigger, MessageSynchronisationServiceSetting } from "../type/datatype";
- import { StreamingService } from "./test-streamOBS";
- import { MessageAuditorService } from "../services/message-auditor.service";
- import { LoggingService } from "../dependencies/fisloggingservice/services/logging-service";
- const stream = new StreamingService()
- const publisher_sync = new MessageAuditorService()
- const publisher_Log = new LoggingService()
- const publisher_take_four_messages: Observable<BaseMessage> = stream.stream().pipe(take(4))
- const publisher: Subject<BaseMessage> = new Subject()
- publisher_take_four_messages.subscribe({
- next: (data) => {
- publisher.next(data)
- }
- })
- const subscriber_log = new LoggingService()
- const subscriber_take_two_messagse: Observable<BaseMessage> = stream.stream().pipe(take(2))
- const subscriber: Subject<BaseMessage> = new Subject()
- subscriber_take_two_messagse.subscribe({
- next: (data) => {
- subscriber.next(<ResponseMessage>data)
- },
- error: e => console.error(e),
- complete: () => { `Target Payload Completed` }
- })
- let publisher_storage: LogSetting = {
- cacheMessageLimit: 0,
- storage: "MongoDB",
- setting: {
- appName: 'Default from client',
- appLocName: 'To be generated in client',
- logLocName: 'To be generated in client',
- },
- customSetting: {
- server: "192.168.100.59:27017",
- database: "test"
- }
- }
- let subscriber_storage: LogSetting = {
- cacheMessageLimit: 0,
- storage: "MongoDB",
- setting: {
- appName: 'Default from client',
- appLocName: 'To be generated in client',
- logLocName: 'To be generated in client',
- },
- customSetting: {
- srv: true,
- user: "testDB",
- password: "h1nt1OyXw6QeUnzS",
- server: "cluster0.29sklte.mongodb.net",
- database: "log",
- }
- }
- let settings: MessageSynchronisationServiceSetting = {
- incomingSource: {
-
- ...publisher_storage,
- tags: ['Incoming']
- },
- target: {
- ...subscriber_storage,
- tags: ['Incoming']
- }
- }
- function initializeData() {
- publisher_Log.init(publisher_storage).then(() => {
- publisher_Log.subscribe(publisher)
- })
- subscriber_log.init(subscriber_storage).then(() => {
- subscriber_log.subscribe(subscriber)
- })
- }
- initializeData()
- publisher_sync.init(settings)
- let errorSubject: Subject<ErrorTrigger> = new Subject()
- let sync = publisher_sync.subscribe(errorSubject)
- sync.subscribe({
- next: (msgToBeSynched) => {
- console.log(`synching ... ${msgToBeSynched.header.messageID}`)
-
- subscriber.next(msgToBeSynched)
- }
- })
- setTimeout(() => {
-
-
- let sampleError: ErrorTrigger = {
- status: 1,
- message: "NO. I dont want to work"
- }
- errorSubject.next(sampleError)
- }, 5000)
- const dns = require('dns');
- function checkInternetConnectivity() {
- dns.lookup('example.com', (err) => {
- if (err && err.code === 'ENOTFOUND') {
- let errorMsg: ErrorTrigger = {
- status: 0,
- message: `No internet connection`
- }
- errorSubject.next(errorMsg)
- } else {
-
-
- }
- });
- }
- const intervalTime = 1000;
- const interval = setInterval(checkInternetConnectivity, intervalTime);
- const duration = 60000;
- setTimeout(function () {
- clearInterval(interval);
- console.log('Internet connectivity monitoring stopped');
- }, duration);
|