@voicenter-team/events-sdk 0.0.21 → 0.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/voicenter-events-sdk.cjs.js +20 -20
- package/dist/voicenter-events-sdk.cjs.js.map +1 -1
- package/dist/voicenter-events-sdk.d.ts +15 -7
- package/dist/voicenter-events-sdk.es.js +1978 -1951
- package/dist/voicenter-events-sdk.es.js.map +1 -1
- package/dist/voicenter-events-sdk.iife.js +18 -18
- package/dist/voicenter-events-sdk.iife.js.map +1 -1
- package/dist/voicenter-events-sdk.umd.js +20 -20
- package/dist/voicenter-events-sdk.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/classes/auth/auth.class.ts +11 -6
- package/src/classes/event-emitter/event-emitter.class.ts +72 -0
- package/src/classes/events-sdk/events-sdk.class.ts +7 -69
- package/src/classes/socket-io/socket-io.class.ts +53 -28
package/package.json
CHANGED
|
@@ -34,7 +34,10 @@ class AuthClass{
|
|
|
34
34
|
password: options.password
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
this.storageKey = md5(JSON.stringify(
|
|
37
|
+
this.storageKey = md5(JSON.stringify({
|
|
38
|
+
...options,
|
|
39
|
+
loggerSocketConnection: null
|
|
40
|
+
}))
|
|
38
41
|
|
|
39
42
|
if (this.lastLoginTimestamp && this.lastLoginTimestamp + this.delay > new Date().getTime()) {
|
|
40
43
|
return
|
|
@@ -59,6 +62,8 @@ class AuthClass{
|
|
|
59
62
|
const loginSessionData = await StorageClass.getSessionStorageDataByKey<LoginSessionData>(key)
|
|
60
63
|
|
|
61
64
|
if (loginSessionData) {
|
|
65
|
+
this.eventsSdkClass.loggerClass.log(LoggerTypeEnum.INFO, 'got data from session', loginSessionData)
|
|
66
|
+
|
|
62
67
|
this.onLoginResponse(loginSessionData)
|
|
63
68
|
|
|
64
69
|
return true
|
|
@@ -109,20 +114,20 @@ class AuthClass{
|
|
|
109
114
|
}
|
|
110
115
|
|
|
111
116
|
private onLoginResponse (loginSessionData: Partial<LoginSessionData>) {
|
|
112
|
-
if (
|
|
113
|
-
this.eventsSdkClass.servers = [ ...
|
|
117
|
+
if (!this.eventsSdkClass.options.isNewStack && this.eventsSdkClass.options.servers) {
|
|
118
|
+
this.eventsSdkClass.servers = [ ...this.eventsSdkClass.options.servers ]
|
|
114
119
|
this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>
|
|
115
120
|
(prev.Priority > current.Priority) ? prev : current
|
|
116
121
|
)
|
|
117
122
|
}
|
|
118
|
-
if (
|
|
123
|
+
if (this.eventsSdkClass.options.isNewStack && this.eventsSdkClass.options.servers) {
|
|
119
124
|
this.eventsSdkClass.servers = [ ...this.eventsSdkClass.options.servers ]
|
|
120
125
|
this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>
|
|
121
126
|
(prev.Priority > current.Priority) ? prev : current
|
|
122
127
|
)
|
|
123
128
|
}
|
|
124
|
-
if (
|
|
125
|
-
this.eventsSdkClass.servers = [ ...
|
|
129
|
+
if (loginSessionData.MonitorList && loginSessionData.MonitorList.length) {
|
|
130
|
+
this.eventsSdkClass.servers = [ ...loginSessionData.MonitorList ]
|
|
126
131
|
this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>
|
|
127
132
|
(prev.Priority > current.Priority) ? prev : current
|
|
128
133
|
)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EventCallbackListenersMap,
|
|
3
|
+
EventSpecificCallback,
|
|
4
|
+
EventTypeData,
|
|
5
|
+
EventTypeNames,
|
|
6
|
+
GenericEventWrapper
|
|
7
|
+
} from '@/types/events'
|
|
8
|
+
import { EventsEnum } from '@/enum/events.enum'
|
|
9
|
+
import EventsSdkClass from '@/classes/events-sdk/events-sdk.class'
|
|
10
|
+
|
|
11
|
+
export class EventEmitterClass{
|
|
12
|
+
private listeners: EventCallbackListenersMap = {
|
|
13
|
+
[EventsEnum.ALL_EXTENSION_STATUS]: [],
|
|
14
|
+
[EventsEnum.ALL_DIALER_STATUS]: [],
|
|
15
|
+
[EventsEnum.ALL_USERS_STATUS]: [],
|
|
16
|
+
[EventsEnum.QUEUE_EVENT]: [],
|
|
17
|
+
[EventsEnum.EXTENSION_EVENT]: [],
|
|
18
|
+
[EventsEnum.DIALER_EVENT]: [],
|
|
19
|
+
[EventsEnum.LOGIN_SUCCESS]: [],
|
|
20
|
+
[EventsEnum.LOGIN_STATUS]: [],
|
|
21
|
+
[EventsEnum.KEEP_ALIVE_RESPONSE]: [],
|
|
22
|
+
[EventsEnum.ONLINE_STATUS_EVENT]: []
|
|
23
|
+
}
|
|
24
|
+
private allListeners: Array<(data: GenericEventWrapper) => void> = []
|
|
25
|
+
|
|
26
|
+
constructor (private readonly eventsSdkClass: EventsSdkClass) {
|
|
27
|
+
this.eventsSdkClass = eventsSdkClass
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public on<T extends EventTypeNames> (event: T, callback: EventSpecificCallback<T>): void
|
|
31
|
+
public on (event: '*', callback: (data: GenericEventWrapper) => void): void
|
|
32
|
+
public on (event: unknown, callback: unknown) {
|
|
33
|
+
if (event === '*') {
|
|
34
|
+
this.allListeners.push(callback as (data: GenericEventWrapper) => void)
|
|
35
|
+
} else {
|
|
36
|
+
// Handle specific event type with strong typing
|
|
37
|
+
this.listeners[event as EventTypeNames].push(callback as EventSpecificCallback<EventTypeNames>)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public off<T extends EventTypeNames> (event: T, callback: EventSpecificCallback<T>): void
|
|
42
|
+
public off (event: '*', callback: (data: GenericEventWrapper) => void): void
|
|
43
|
+
public off (event: unknown, callback: unknown) {
|
|
44
|
+
if (event === '*') {
|
|
45
|
+
this.allListeners = this.allListeners.filter(item => item !== callback)
|
|
46
|
+
} else {
|
|
47
|
+
const data = this.listeners[event as EventTypeNames] as Array<EventSpecificCallback<EventTypeNames>>
|
|
48
|
+
const filtered = data.filter(item => item !== callback)
|
|
49
|
+
|
|
50
|
+
this.listeners = {
|
|
51
|
+
...this.listeners,
|
|
52
|
+
[event as EventTypeNames]: filtered
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public emit <T extends EventTypeNames> (event: T, data: EventTypeData<T>) {
|
|
58
|
+
this.eventsSdkClass.socketIoClass.lastEventTimestamp = new Date().getTime()
|
|
59
|
+
|
|
60
|
+
this.listeners[event].forEach(callback => callback({
|
|
61
|
+
name: event,
|
|
62
|
+
data
|
|
63
|
+
}))
|
|
64
|
+
|
|
65
|
+
const allEventData: GenericEventWrapper = {
|
|
66
|
+
name: event,
|
|
67
|
+
data: data as any
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
this.allListeners.forEach((callback) => callback(allEventData))
|
|
71
|
+
}
|
|
72
|
+
}
|
|
@@ -5,14 +5,13 @@ import { SocketIoClass } from '@/classes/socket-io/socket-io.class'
|
|
|
5
5
|
import { EventsSdkOptions, ReconnectOptions, Server, ServerParameter } from '@/classes/events-sdk/events-sdk.types'
|
|
6
6
|
import { SocketTyped } from '@/types/socket'
|
|
7
7
|
import {
|
|
8
|
-
EventCallbackListenersMap,
|
|
9
8
|
EventSpecificCallback,
|
|
10
|
-
EventTypeData,
|
|
11
9
|
EventTypeNames,
|
|
12
10
|
GenericEventWrapper,
|
|
13
11
|
} from '@/types/events'
|
|
14
12
|
import { EventsEnum } from '@/enum/events.enum'
|
|
15
13
|
import { LoggerClass } from '@/classes/logger/logger.class'
|
|
14
|
+
import { EventEmitterClass } from '@/classes/event-emitter/event-emitter.class'
|
|
16
15
|
|
|
17
16
|
class EventsSdkClass{
|
|
18
17
|
private argumentOptions: EventsSdkOptions
|
|
@@ -29,25 +28,12 @@ class EventsSdkClass{
|
|
|
29
28
|
public authClass = new AuthClass(this)
|
|
30
29
|
public socketIoClass = new SocketIoClass(this)
|
|
31
30
|
public loggerClass = new LoggerClass(this)
|
|
31
|
+
public eventEmitterClass = new EventEmitterClass(this)
|
|
32
32
|
|
|
33
33
|
public reconnectOptions: ReconnectOptions
|
|
34
34
|
|
|
35
35
|
public retryConnection
|
|
36
36
|
|
|
37
|
-
private listeners: EventCallbackListenersMap = {
|
|
38
|
-
[EventsEnum.ALL_EXTENSION_STATUS]: [],
|
|
39
|
-
[EventsEnum.ALL_DIALER_STATUS]: [],
|
|
40
|
-
[EventsEnum.ALL_USERS_STATUS]: [],
|
|
41
|
-
[EventsEnum.QUEUE_EVENT]: [],
|
|
42
|
-
[EventsEnum.EXTENSION_EVENT]: [],
|
|
43
|
-
[EventsEnum.DIALER_EVENT]: [],
|
|
44
|
-
[EventsEnum.LOGIN_SUCCESS]: [],
|
|
45
|
-
[EventsEnum.LOGIN_STATUS]: [],
|
|
46
|
-
[EventsEnum.KEEP_ALIVE_RESPONSE]: [],
|
|
47
|
-
[EventsEnum.ONLINE_STATUS_EVENT]: []
|
|
48
|
-
}
|
|
49
|
-
private allListeners: Array<(data: GenericEventWrapper) => void> = []
|
|
50
|
-
|
|
51
37
|
constructor (options: EventsSdkOptions) {
|
|
52
38
|
this.options = {
|
|
53
39
|
...eventsSdkDefaultOptions,
|
|
@@ -75,48 +61,16 @@ class EventsSdkClass{
|
|
|
75
61
|
}
|
|
76
62
|
|
|
77
63
|
public on<T extends EventTypeNames> (event: T, callback: EventSpecificCallback<T>): void
|
|
78
|
-
public on (event: '*', callback: (data: GenericEventWrapper) => void): void
|
|
79
|
-
|
|
80
|
-
if (event === '*') {
|
|
81
|
-
this.allListeners.push(callback as (data: GenericEventWrapper) => void)
|
|
82
|
-
} else {
|
|
83
|
-
// Handle specific event type with strong typing
|
|
84
|
-
this.listeners[event as EventTypeNames].push(callback as EventSpecificCallback<EventTypeNames>)
|
|
85
|
-
}
|
|
64
|
+
public on (event: '*', callback: (data: GenericEventWrapper) => void): void {
|
|
65
|
+
this.eventEmitterClass.on(event, callback)
|
|
86
66
|
}
|
|
87
67
|
|
|
88
|
-
public
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (event === '*') {
|
|
92
|
-
this.allListeners = this.allListeners.filter(item => item !== callback)
|
|
93
|
-
} else {
|
|
94
|
-
const data = this.listeners[event as EventTypeNames] as Array<EventSpecificCallback<EventTypeNames>>
|
|
95
|
-
const filtered = data.filter(item => item !== callback)
|
|
96
|
-
|
|
97
|
-
this.listeners = {
|
|
98
|
-
...this.listeners,
|
|
99
|
-
[event as EventTypeNames]: filtered
|
|
100
|
-
}
|
|
68
|
+
public emit (event: EventsEnum, data: unknown) {
|
|
69
|
+
if (this.socketIoClass.io) {
|
|
70
|
+
this.socketIoClass.io.emit(event, data)
|
|
101
71
|
}
|
|
102
72
|
}
|
|
103
73
|
|
|
104
|
-
public emit <T extends EventTypeNames> (event: T, data: EventTypeData<T>) {
|
|
105
|
-
this.socketIoClass.lastEventTimestamp = new Date().getTime()
|
|
106
|
-
|
|
107
|
-
this.listeners[event].forEach(callback => callback({
|
|
108
|
-
name: event,
|
|
109
|
-
data
|
|
110
|
-
}))
|
|
111
|
-
|
|
112
|
-
const allEventData: GenericEventWrapper = {
|
|
113
|
-
name: event,
|
|
114
|
-
data: data as any
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
this.allListeners.forEach((callback) => callback(allEventData))
|
|
118
|
-
}
|
|
119
|
-
|
|
120
74
|
public connect (serverParameter: ServerParameter) {
|
|
121
75
|
// if (server === ServerParameter.DEFAULT) {
|
|
122
76
|
// serverToConnect = this.findCurrentServer()
|
|
@@ -230,22 +184,6 @@ class EventsSdkClass{
|
|
|
230
184
|
}
|
|
231
185
|
}
|
|
232
186
|
|
|
233
|
-
public getServerWithHighestPriority (servers: Server[]): Server {
|
|
234
|
-
let chosenServer: Server | undefined
|
|
235
|
-
|
|
236
|
-
let maxPriority = Number.MAX_SAFE_INTEGER
|
|
237
|
-
|
|
238
|
-
chosenServer = servers.find(server => {
|
|
239
|
-
if (server.Priority < maxPriority) {
|
|
240
|
-
maxPriority = server.Priority
|
|
241
|
-
|
|
242
|
-
chosenServer = server
|
|
243
|
-
}
|
|
244
|
-
})
|
|
245
|
-
|
|
246
|
-
return chosenServer ? chosenServer : this.server
|
|
247
|
-
}
|
|
248
|
-
|
|
249
187
|
public async init () {
|
|
250
188
|
if (this.socket) {
|
|
251
189
|
// this.emit(eventTypes.CLOSE);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ManagerOptions, SocketOptions } from 'socket.io-client'
|
|
1
|
+
import { ManagerOptions, Socket, SocketOptions } from 'socket.io-client'
|
|
2
2
|
import EventsSdkClass from '@/classes/events-sdk/events-sdk.class'
|
|
3
3
|
import sockets, { TypedSocketIo } from '@/classes/socket-io/versions'
|
|
4
4
|
import { SocketTyped } from '@/types/socket'
|
|
@@ -6,6 +6,7 @@ import { ServerParameter } from '@/classes/events-sdk/events-sdk.types'
|
|
|
6
6
|
import { EventsEnum } from '@/enum/events.enum'
|
|
7
7
|
import { KeepAliveResponseEvent } from '@/types/events'
|
|
8
8
|
import { StorageClass } from '@/classes/storage/storage.class'
|
|
9
|
+
import { LoggerTypeEnum } from '@/enum/logger.enum'
|
|
9
10
|
// import { LoggerTypeEnum } from '@/enum/logger.enum'
|
|
10
11
|
|
|
11
12
|
export class SocketIoClass{
|
|
@@ -43,14 +44,13 @@ export class SocketIoClass{
|
|
|
43
44
|
|
|
44
45
|
const url = server ? `${protocol}://${domain}` : this.eventsSdkClass.URL
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
// )
|
|
47
|
+
this.eventsSdkClass.loggerClass.log(
|
|
48
|
+
LoggerTypeEnum.INFO,
|
|
49
|
+
'Connecting to..',
|
|
50
|
+
url
|
|
51
|
+
)
|
|
52
52
|
|
|
53
|
-
this.eventsSdkClass.emit(
|
|
53
|
+
this.eventsSdkClass.eventEmitterClass.emit(
|
|
54
54
|
EventsEnum.ONLINE_STATUS_EVENT,
|
|
55
55
|
{
|
|
56
56
|
isSocketConnected: false,
|
|
@@ -80,30 +80,25 @@ export class SocketIoClass{
|
|
|
80
80
|
} else {
|
|
81
81
|
throw new Error('Socket server url no defined')
|
|
82
82
|
}
|
|
83
|
-
} catch (
|
|
84
|
-
|
|
83
|
+
} catch (error) {
|
|
84
|
+
this.eventsSdkClass.loggerClass.log(LoggerTypeEnum.ERROR, 'init socket connection error', error)
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
public initSocketEvents () {
|
|
89
89
|
if (this.io) {
|
|
90
90
|
this.io
|
|
91
|
-
.on(EventsEnum.LOGIN_SUCCESS, (data) => this.eventsSdkClass.emit(EventsEnum.LOGIN_SUCCESS, data))
|
|
92
|
-
.on(EventsEnum.QUEUE_EVENT, (data) => this.eventsSdkClass.emit(EventsEnum.QUEUE_EVENT, data))
|
|
93
|
-
.on(EventsEnum.EXTENSION_EVENT, (data) => this.eventsSdkClass.emit(EventsEnum.EXTENSION_EVENT, data))
|
|
94
|
-
.on(EventsEnum.DIALER_EVENT, (data) => this.eventsSdkClass.emit(EventsEnum.DIALER_EVENT, data))
|
|
95
|
-
.on(EventsEnum.LOGIN_STATUS, (data) => this.eventsSdkClass.emit(EventsEnum.LOGIN_STATUS, data))
|
|
96
|
-
.on(EventsEnum.ALL_EXTENSION_STATUS, (data) => this.eventsSdkClass.emit(EventsEnum.ALL_EXTENSION_STATUS, data))
|
|
97
|
-
.on(EventsEnum.ALL_DIALER_STATUS, (data) => this.eventsSdkClass.emit(EventsEnum.ALL_DIALER_STATUS, data))
|
|
91
|
+
.on(EventsEnum.LOGIN_SUCCESS, (data) => this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.LOGIN_SUCCESS, data))
|
|
92
|
+
.on(EventsEnum.QUEUE_EVENT, (data) => this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.QUEUE_EVENT, data))
|
|
93
|
+
.on(EventsEnum.EXTENSION_EVENT, (data) => this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.EXTENSION_EVENT, data))
|
|
94
|
+
.on(EventsEnum.DIALER_EVENT, (data) => this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.DIALER_EVENT, data))
|
|
95
|
+
.on(EventsEnum.LOGIN_STATUS, (data) => this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.LOGIN_STATUS, data))
|
|
96
|
+
.on(EventsEnum.ALL_EXTENSION_STATUS, (data) => this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ALL_EXTENSION_STATUS, data))
|
|
97
|
+
.on(EventsEnum.ALL_DIALER_STATUS, (data) => this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ALL_DIALER_STATUS, data))
|
|
98
98
|
.on(EventsEnum.KEEP_ALIVE_RESPONSE, (data) => this.onKeepAliveResponse(data))
|
|
99
99
|
.on(EventsEnum.CONNECT, () => this.onConnect())
|
|
100
|
-
.on(EventsEnum.DISCONNECT, () => this.onDisconnect())
|
|
101
|
-
.on(EventsEnum.CONNECT_ERROR_EVENT, () =>
|
|
102
|
-
this.eventsSdkClass.emit(EventsEnum.ONLINE_STATUS_EVENT, { isSocketConnected: false })
|
|
103
|
-
setTimeout(() => {
|
|
104
|
-
this.eventsSdkClass.connect(ServerParameter.NEXT)
|
|
105
|
-
},this.eventsSdkClass.options.reconnectionDelay)
|
|
106
|
-
})
|
|
100
|
+
.on(EventsEnum.DISCONNECT, (data) => this.onDisconnect(data))
|
|
101
|
+
.on(EventsEnum.CONNECT_ERROR_EVENT, (data) => this.onConnectError(data))
|
|
107
102
|
}
|
|
108
103
|
}
|
|
109
104
|
|
|
@@ -132,7 +127,9 @@ export class SocketIoClass{
|
|
|
132
127
|
// }
|
|
133
128
|
|
|
134
129
|
if (now > this.lastEventTimestamp + this.eventsSdkClass.options.keepAliveTimeout && this.io) {
|
|
135
|
-
this.
|
|
130
|
+
this.eventsSdkClass.emit(EventsEnum.KEEP_ALIVE, this.eventsSdkClass.authClass.token)
|
|
131
|
+
|
|
132
|
+
this.eventsSdkClass.loggerClass.log(LoggerTypeEnum.INFO, `EMIT -> ${EventsEnum.KEEP_ALIVE}`, this.eventsSdkClass.authClass.token)
|
|
136
133
|
|
|
137
134
|
return
|
|
138
135
|
}
|
|
@@ -153,6 +150,8 @@ export class SocketIoClass{
|
|
|
153
150
|
}
|
|
154
151
|
|
|
155
152
|
private onKeepAliveResponse (data: KeepAliveResponseEvent) {
|
|
153
|
+
this.eventsSdkClass.loggerClass.log(LoggerTypeEnum.INFO, EventsEnum.KEEP_ALIVE_RESPONSE)
|
|
154
|
+
|
|
156
155
|
if (data.errorCode) {
|
|
157
156
|
this.initSocketConnection()
|
|
158
157
|
|
|
@@ -173,15 +172,27 @@ export class SocketIoClass{
|
|
|
173
172
|
|
|
174
173
|
this.connected = true
|
|
175
174
|
|
|
176
|
-
this.eventsSdkClass.
|
|
175
|
+
this.eventsSdkClass.loggerClass.log(
|
|
176
|
+
LoggerTypeEnum.INFO,
|
|
177
|
+
EventsEnum.CONNECT,
|
|
178
|
+
this.eventsSdkClass.reconnectOptions
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, { isSocketConnected: true })
|
|
177
182
|
}
|
|
178
183
|
|
|
179
|
-
private onDisconnect () {
|
|
184
|
+
private onDisconnect (reason: Socket.DisconnectReason) {
|
|
180
185
|
this.connected = false
|
|
181
186
|
|
|
187
|
+
this.eventsSdkClass.loggerClass.log(
|
|
188
|
+
LoggerTypeEnum.INFO,
|
|
189
|
+
EventsEnum.DISCONNECT,
|
|
190
|
+
reason
|
|
191
|
+
)
|
|
192
|
+
|
|
182
193
|
this.closeAllConnections()
|
|
183
194
|
|
|
184
|
-
this.eventsSdkClass.emit(EventsEnum.ONLINE_STATUS_EVENT, { isSocketConnected: false })
|
|
195
|
+
this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, { isSocketConnected: false })
|
|
185
196
|
|
|
186
197
|
if (!this.doReconnect) {
|
|
187
198
|
return
|
|
@@ -190,4 +201,18 @@ export class SocketIoClass{
|
|
|
190
201
|
console.log('attempt to connect...')
|
|
191
202
|
this.eventsSdkClass.connect(ServerParameter.NEXT)
|
|
192
203
|
}
|
|
204
|
+
|
|
205
|
+
private onConnectError (data: Error) {
|
|
206
|
+
this.eventsSdkClass.eventEmitterClass.emit(EventsEnum.ONLINE_STATUS_EVENT, { isSocketConnected: false })
|
|
207
|
+
|
|
208
|
+
this.eventsSdkClass.loggerClass.log(
|
|
209
|
+
LoggerTypeEnum.ERROR,
|
|
210
|
+
EventsEnum.CONNECT_ERROR_EVENT,
|
|
211
|
+
data
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
setTimeout(() => {
|
|
215
|
+
this.eventsSdkClass.connect(ServerParameter.NEXT)
|
|
216
|
+
},this.eventsSdkClass.options.reconnectionDelay)
|
|
217
|
+
}
|
|
193
218
|
}
|