1- import { WebSocketConnection } from "./communication/WebSocketConnection" ;
2- import { Connection } from "./interfaces/Connection" ;
3- import { ErrorListener } from "./interfaces/ErrorListener" ;
4- import { Logger , LoggerConfig } from "log4ts" ;
5- import BasicLayout from "log4ts/build/layouts/BasicLayout" ;
6- import ConsoleAppender from "log4ts/build/appenders/ConsoleAppender" ;
7- import { LogLevel } from "log4ts/build/LogLevel" ;
8- import { WebSocketBridgeCommunication } from "./communication/WebSocketBridgeCommunication" ;
9- import { w3cwebsocket as WebSocketLib } from "websocket" ;
1+ import { WebSocketConnection } from './communication/WebSocketConnection' ;
2+ import { Connection } from './interfaces/Connection' ;
3+ import { ErrorListener } from './interfaces/ErrorListener' ;
4+ import { Logger } from './utils/Logger' ;
5+ import { WebSocketBridgeCommunication } from './communication/WebSocketBridgeCommunication' ;
106
117export class XComponent {
12- private logger : Logger = Logger . getLogger ( "XComponent" ) ;
13- private loggerconfig : LoggerConfig ;
8+ private logger = Logger . getLogger ( 'XComponent' ) ;
149 private initialized : boolean = false ;
1510
16- public connect ( serverUrl : string , errorListener ?: ErrorListener , heartbeatIntervalSeconds : number = 10 ) : Promise < Connection > {
11+ public connect (
12+ serverUrl : string ,
13+ errorListener ?: ErrorListener ,
14+ heartbeatIntervalSeconds : number = 10
15+ ) : Promise < Connection > {
1716 this . ensureInitialized ( ) ;
18- return new Promise ( ( resolve , reject ) : void => {
19- let webSocket ;
20- if ( this . isNodeApplication ( ) ) {
21- process . env . NODE_TLS_REJECT_UNAUTHORIZED = "0" ;
22- webSocket = new WebSocketLib ( serverUrl ) ;
23- } else {
24- webSocket = new WebSocket ( serverUrl ) ;
25- }
26- let webSocketBridgeCommunication = new WebSocketBridgeCommunication ( webSocket ) ;
27- let connection = new WebSocketConnection ( webSocket , webSocketBridgeCommunication ) ;
28-
29- webSocket . onopen = ( ( e : Event ) => {
30- connection . closedByUser = false ;
31- webSocketBridgeCommunication . startHeartbeat ( heartbeatIntervalSeconds ) ;
32- this . logger . info ( "connection started on " + serverUrl + "." ) ;
33- resolve ( connection ) ;
34- } ) . bind ( this ) ;
35-
36- webSocket . onerror = ( ( error : Event ) => {
37- if ( errorListener ) {
38- errorListener . onError ( new Error ( error . toString ( ) ) ) ;
39- reject ( error ) ;
17+ return new Promise (
18+ ( resolve , reject ) : void => {
19+ let webSocket ;
20+ if ( this . isNodeApplication ( ) ) {
21+ process . env . NODE_TLS_REJECT_UNAUTHORIZED = '0' ;
22+ webSocket = new WebSocket ( serverUrl ) ;
23+ } else {
24+ webSocket = new WebSocket ( serverUrl ) ;
4025 }
41- this . logger . error ( "Error on " + serverUrl + "." , error ) ;
42- } ) . bind ( this ) ;
26+ let webSocketBridgeCommunication = new WebSocketBridgeCommunication ( webSocket ) ;
27+ let connection = new WebSocketConnection ( webSocket , webSocketBridgeCommunication ) ;
4328
44- webSocket . onclose = ( ( closeEvent : CloseEvent ) => {
45- this . logger . info ( "connection on " + serverUrl + " closed." , closeEvent ) ;
46- if ( ! connection . closedByUser && errorListener ) {
47- errorListener . onError ( new Error ( "Unxecpected connection close on " + serverUrl ) ) ;
48- reject ( closeEvent ) ;
49- }
50- webSocketBridgeCommunication . dispose ( ) ;
51- connection . dispose ( ) ;
52- } ) . bind ( this ) ;
53- } ) ;
54- }
29+ webSocket . onopen = ( ( e : Event ) => {
30+ connection . closedByUser = false ;
31+ webSocketBridgeCommunication . startHeartbeat ( heartbeatIntervalSeconds ) ;
32+ this . logger . info ( 'connection started on ' + serverUrl + '.' ) ;
33+ resolve ( connection ) ;
34+ } ) . bind ( this ) ;
5535
56- public setLogLevel ( logLevel : LogLevel ) : void {
57- this . ensureInitialized ( ) ;
58- this . loggerconfig . setLevel ( logLevel ) ;
59- }
36+ webSocket . onerror = ( ( error : Event ) => {
37+ if ( errorListener ) {
38+ errorListener . onError ( new Error ( error . toString ( ) ) ) ;
39+ reject ( error ) ;
40+ }
41+ this . logger . error ( 'Error on ' + serverUrl + '.' , error ) ;
42+ } ) . bind ( this ) ;
6043
61- public getLogLevel ( ) : LogLevel {
62- this . ensureInitialized ( ) ;
63- return this . loggerconfig . getLevel ( ) ;
44+ webSocket . onclose = ( ( closeEvent : CloseEvent ) => {
45+ this . logger . info ( 'connection on ' + serverUrl + ' closed.' , closeEvent ) ;
46+ if ( ! connection . closedByUser && errorListener ) {
47+ errorListener . onError ( new Error ( 'Unxecpected connection close on ' + serverUrl ) ) ;
48+ reject ( closeEvent ) ;
49+ }
50+ webSocketBridgeCommunication . dispose ( ) ;
51+ connection . dispose ( ) ;
52+ } ) . bind ( this ) ;
53+ }
54+ ) ;
6455 }
6556
6657 private ensureInitialized ( ) {
6758 if ( ! this . initialized ) {
68- let consoleAppender = new ConsoleAppender ( ) ;
69- consoleAppender . setLayout ( new BasicLayout ( ) ) ;
70- this . loggerconfig = new LoggerConfig ( consoleAppender , LogLevel . INFO ) ;
71- Logger . setConfig ( this . loggerconfig ) ;
7259 this . initialized = true ;
7360 }
7461 }
7562
7663 private isNodeApplication ( ) {
77- return typeof process === "object" &&
78- process + "" === "[object process]" && typeof window === "undefined" ;
64+ return typeof process === 'object' && process + '' === '[object process]' && typeof window === 'undefined' ;
7965 }
80- }
66+ }
0 commit comments