fixing io.sockets and starter to wait for the dispatcher to be ready
This commit is contained in:
parent
e93e50c43c
commit
2591e2cbfb
@ -42,7 +42,7 @@ const main = async function () {
|
|||||||
'event': [],
|
'event': [],
|
||||||
'amqp': ['localhost'],
|
'amqp': ['localhost'],
|
||||||
'io-server': [7000],
|
'io-server': [7000],
|
||||||
'io-client': ['localhost:7000']
|
'io-client': ['http://localhost:7000']
|
||||||
}
|
}
|
||||||
|
|
||||||
let opts: {
|
let opts: {
|
||||||
@ -126,9 +126,6 @@ const main = async function () {
|
|||||||
|
|
||||||
await dispatcher.ready.waitFor(value => value);
|
await dispatcher.ready.waitFor(value => value);
|
||||||
|
|
||||||
const sleep = promisify(setTimeout);
|
|
||||||
await sleep(1000);
|
|
||||||
|
|
||||||
// Try to load the Modules.
|
// Try to load the Modules.
|
||||||
try {
|
try {
|
||||||
await loadPackages(getPackageLoader(dispatcher), args.file)
|
await loadPackages(getPackageLoader(dispatcher), args.file)
|
||||||
|
@ -7,16 +7,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { connect, Socket } from 'socket.io-client';
|
import { connect, Socket } from 'socket.io-client';
|
||||||
import { getCentralNopeLogger } from "../logger/getLogger";
|
import { getCentralNopeLogger, getNopeLogger } from "../logger/getLogger";
|
||||||
import { NopeObservable } from '../observables/nopeObservable';
|
import { NopeObservable } from '../observables/nopeObservable';
|
||||||
import { IAvailableInstanceGeneratorsMsg, IAvailableServicesMsg, IAvailableTopicsMsg, ICommunicationInterface, IExternalEventMsg, IRequestTaskMsg, IResponseTaskMsg, ITaskCancelationMsg } from "../types/nope/nopeCommunication.interface";
|
import { IAvailableInstanceGeneratorsMsg, IAvailableServicesMsg, IAvailableTopicsMsg, ICommunicationInterface, IExternalEventMsg, IRequestTaskMsg, IResponseTaskMsg, ITaskCancelationMsg } from "../types/nope/nopeCommunication.interface";
|
||||||
import { INopeObservable } from '../types/nope/nopeObservable.interface';
|
import { INopeObservable } from '../types/nope/nopeObservable.interface';
|
||||||
|
import { Logger } from "winston";
|
||||||
|
|
||||||
export class IoSocketClient implements ICommunicationInterface {
|
export class IoSocketClient implements ICommunicationInterface {
|
||||||
|
|
||||||
connected: INopeObservable<boolean>;
|
connected: INopeObservable<boolean>;
|
||||||
|
|
||||||
protected _emitter: typeof Socket;
|
protected _emitter: typeof Socket;
|
||||||
|
protected _logger: Logger;
|
||||||
|
|
||||||
constructor(public uri: string) {
|
constructor(public uri: string) {
|
||||||
const _this = this;
|
const _this = this;
|
||||||
@ -24,15 +26,25 @@ export class IoSocketClient implements ICommunicationInterface {
|
|||||||
this.connected = new NopeObservable();
|
this.connected = new NopeObservable();
|
||||||
this.connected.setContent(false);
|
this.connected.setContent(false);
|
||||||
|
|
||||||
|
// Make shure we use the http before connecting.
|
||||||
|
this.uri = this.uri.startsWith('http://') ? this.uri : 'http://' + this.uri;
|
||||||
|
|
||||||
|
// Create a Logger
|
||||||
|
this._logger = getNopeLogger('io-socket-client');
|
||||||
|
this._logger.info('connecting to: ' + uri);
|
||||||
|
|
||||||
this._emitter = connect(uri);
|
this._emitter = connect(uri);
|
||||||
|
|
||||||
this._emitter.on('connect', (...args) => {
|
this._emitter.on('connect', (...args) => {
|
||||||
// Element is connected
|
// Element is connected
|
||||||
|
_this._logger.info('connected');
|
||||||
_this.connected.setContent(true);
|
_this.connected.setContent(true);
|
||||||
});
|
});
|
||||||
this._emitter.on('disconnect', () => {
|
this._emitter.on('disconnect', () => {
|
||||||
// Connection Lost.
|
// Connection Lost.
|
||||||
|
_this._logger.error('Connection lost!');
|
||||||
_this.connected.setContent(false);
|
_this.connected.setContent(false);
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async onTaskCancelation(cb: (msg: ITaskCancelationMsg) => void) {
|
async onTaskCancelation(cb: (msg: ITaskCancelationMsg) => void) {
|
||||||
|
@ -41,7 +41,8 @@ export class IoSocketSeverEventEmitter {
|
|||||||
this.connected = new NopeObservable();
|
this.connected = new NopeObservable();
|
||||||
this.connected.setContent(false);
|
this.connected.setContent(false);
|
||||||
|
|
||||||
this._logger = getNopeLogger('io-socket');
|
this._logger = getNopeLogger('io-socket-server');
|
||||||
|
this._logger.info('waiting for connection. Listening on port: ' + port.toString());
|
||||||
|
|
||||||
this._socket.listen(port);
|
this._socket.listen(port);
|
||||||
|
|
||||||
@ -60,6 +61,7 @@ export class IoSocketSeverEventEmitter {
|
|||||||
|
|
||||||
if (_this._sockets.size === 0){
|
if (_this._sockets.size === 0){
|
||||||
_this.connected.setContent(false);
|
_this.connected.setContent(false);
|
||||||
|
_this._logger.warn('All Connections lost');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user