Compare commits
6 Commits
Author | SHA1 | Date | |
---|---|---|---|
f98c797ad8 | |||
a23e7349be | |||
c390881a4e | |||
5e64f4ca25 | |||
765bc73197 | |||
105acaf97b |
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/smartsocket",
|
||||
"version": "1.1.54",
|
||||
"version": "1.1.57",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/smartsocket",
|
||||
"version": "1.1.54",
|
||||
"version": "1.1.57",
|
||||
"description": "easy and secure websocket communication",
|
||||
"main": "dist/index.js",
|
||||
"typings": "dist/index.d.ts",
|
||||
|
@ -1,3 +1,5 @@
|
||||
export interface IRequestAuthPayload {
|
||||
serverShortId: string;
|
||||
}
|
||||
}
|
||||
|
||||
export type TConnectionStatus = 'new' | 'connecting' | 'connected' | 'disconnecting' | 'disconnected';
|
||||
|
@ -33,7 +33,9 @@ export class SmartsocketClient {
|
||||
public serverPort: number;
|
||||
public autoReconnect: boolean;
|
||||
|
||||
public eventSubject = new plugins.smartrx.rxjs.Subject();
|
||||
// status handling
|
||||
public eventSubject = new plugins.smartrx.rxjs.Subject<interfaces.TConnectionStatus>();
|
||||
public eventStatus: interfaces.TConnectionStatus = 'new';
|
||||
|
||||
public socketFunctions = new plugins.lik.Objectmap<SocketFunction<any>>();
|
||||
public socketRequests = new plugins.lik.Objectmap<SocketRequest<any>>();
|
||||
@ -135,6 +137,7 @@ export class SmartsocketClient {
|
||||
}
|
||||
defaultLogger.log('warn', `disconnected from server ${this.remoteShortId}`);
|
||||
this.remoteShortId = null;
|
||||
this.updateStatus('disconnected');
|
||||
|
||||
if (this.autoReconnect) {
|
||||
this.tryDebouncedReconnect();
|
||||
@ -169,4 +172,11 @@ export class SmartsocketClient {
|
||||
const result = response.funcDataArg;
|
||||
return result;
|
||||
}
|
||||
|
||||
private updateStatus (statusArg: interfaces.TConnectionStatus) {
|
||||
if (this.eventStatus !== statusArg) {
|
||||
this.eventSubject.next(statusArg);
|
||||
}
|
||||
this.eventStatus = statusArg;
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,8 @@ export class SocketConnection {
|
||||
public smartsocketRef: Smartsocket | SmartsocketClient;
|
||||
public socket: SocketIO.Socket | SocketIOClient.Socket;
|
||||
|
||||
public eventSubject = new plugins.smartrx.rxjs.Subject();
|
||||
public eventSubject = new plugins.smartrx.rxjs.Subject<interfaces.TConnectionStatus>();
|
||||
public eventStatus: interfaces.TConnectionStatus = 'new';
|
||||
|
||||
constructor(optionsArg: ISocketConnectionConstructorOptions) {
|
||||
this.alias = optionsArg.alias;
|
||||
@ -67,12 +68,12 @@ export class SocketConnection {
|
||||
|
||||
// standard behaviour that is always true
|
||||
allSocketConnections.add(this);
|
||||
this.socket.on('disconnect', () => {
|
||||
this.socket.on('disconnect', async () => {
|
||||
plugins.smartlog.defaultLogger.log(
|
||||
'info',
|
||||
`SocketConnection with >alias ${this.alias} on >side ${this.side} disconnected`
|
||||
);
|
||||
this.socket.disconnect();
|
||||
await this.disconnect();
|
||||
allSocketConnections.remove(this);
|
||||
});
|
||||
}
|
||||
@ -173,5 +174,13 @@ export class SocketConnection {
|
||||
// disconnecting ----------------------
|
||||
public async disconnect() {
|
||||
this.socket.disconnect(true);
|
||||
this.updateStatus('disconnected');
|
||||
}
|
||||
|
||||
private updateStatus (statusArg: interfaces.TConnectionStatus) {
|
||||
if (this.eventStatus !== statusArg) {
|
||||
this.eventSubject.next(statusArg);
|
||||
}
|
||||
this.eventStatus = statusArg;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user