@@ -19,7 +19,7 @@ import { startStop } from '@matrixai/async-init';
1919import Logger from '@matrixai/logger' ;
2020import uWebsocket from 'uWebSockets.js' ;
2121import WebSocketStream from './WebSocketStream' ;
22- import * as clientRPCErrors from './errors' ;
22+ import * as webSocketErrors from './errors' ;
2323import * as webSocketEvents from './events' ;
2424import { promise } from '../utils' ;
2525
@@ -96,6 +96,7 @@ class WebSocketServer extends EventTarget {
9696
9797 protected server : uWebsocket . TemplatedApp ;
9898 protected listenSocket : uWebsocket . us_listen_socket ;
99+ protected _port : number ;
99100 protected _host : string ;
100101 protected connectionEventHandler : (
101102 event : webSocketEvents . ConnectionEvent ,
@@ -175,7 +176,7 @@ class WebSocketServer extends EventTarget {
175176 this . listenSocket = listenSocket ;
176177 listenProm . resolveP ( ) ;
177178 } else {
178- listenProm . rejectP ( new clientRPCErrors . ErrorServerPortUnavailable ( ) ) ;
179+ listenProm . rejectP ( new webSocketErrors . ErrorServerPortUnavailable ( ) ) ;
179180 }
180181 } ;
181182 if ( host != null ) {
@@ -186,15 +187,14 @@ class WebSocketServer extends EventTarget {
186187 this . server . listen ( port , listenCallback ) ;
187188 }
188189 await listenProm . p ;
189- this . logger . debug (
190- `Listening on port ${ uWebsocket . us_socket_local_port ( this . listenSocket ) } ` ,
191- ) ;
190+ this . _port = uWebsocket . us_socket_local_port ( this . listenSocket ) ;
191+ this . logger . debug ( `Listening on port ${ this . _port } ` ) ;
192192 this . _host = host ?? '127.0.0.1' ;
193193 this . dispatchEvent (
194194 new webSocketEvents . StartEvent ( {
195195 detail : {
196196 host : this . _host ,
197- port : this . port ,
197+ port : this . _port ,
198198 } ,
199199 } ) ,
200200 ) ;
@@ -222,11 +222,13 @@ class WebSocketServer extends EventTarget {
222222 this . logger . info ( `Stopped ${ this . constructor . name } ` ) ;
223223 }
224224
225- get port ( ) : Port {
226- return uWebsocket . us_socket_local_port ( this . listenSocket ) as Port ;
225+ @startStop . ready ( new webSocketErrors . ErrorWebSocketServerNotRunning ( ) )
226+ public getPort ( ) : Port {
227+ return this . _port as Port ;
227228 }
228229
229- get host ( ) : Host {
230+ @startStop . ready ( new webSocketErrors . ErrorWebSocketServerNotRunning ( ) )
231+ public getHost ( ) : Host {
230232 return this . _host as Host ;
231233 }
232234
@@ -301,7 +303,7 @@ class WebSocketServer extends EventTarget {
301303 const connectionInfo : ConnectionInfo = {
302304 remoteHost : Buffer . from ( ws . getRemoteAddressAsText ( ) ) . toString ( ) ,
303305 localHost : this . _host ,
304- localPort : this . port ,
306+ localPort : this . _port ,
305307 } ;
306308 this . dispatchEvent (
307309 new webSocketEvents . ConnectionEvent ( {
@@ -373,7 +375,7 @@ class WebSocketStreamServerInternal extends WebSocketStream {
373375 case 2 :
374376 // Write failure, emit error
375377 writableLogger . error ( 'Send error' ) ;
376- controller . error ( new clientRPCErrors . ErrorServerSendFailed ( ) ) ;
378+ controller . error ( new webSocketErrors . ErrorServerSendFailed ( ) ) ;
377379 break ;
378380 case 0 :
379381 writableLogger . info ( 'Write backpressure' ) ;
@@ -434,7 +436,7 @@ class WebSocketStreamServerInternal extends WebSocketStream {
434436 controller . enqueue ( messageBuffer ) ;
435437 if ( controller . desiredSize != null && controller . desiredSize < 0 ) {
436438 readableLogger . error ( 'Read stream buffer full' ) ;
437- const err = new clientRPCErrors . ErrorServerReadableBufferLimit ( ) ;
439+ const err = new webSocketErrors . ErrorServerReadableBufferLimit ( ) ;
438440 if ( ! this . webSocketEnded_ ) {
439441 this . signalWebSocketEnd ( err ) ;
440442 ws . end ( 4001 , 'Read stream buffer full' ) ;
@@ -478,7 +480,7 @@ class WebSocketStreamServerInternal extends WebSocketStream {
478480 clearTimeout ( pingTimeoutTimer ) ;
479481 // Closing streams
480482 logger . debug ( 'Cleaning streams' ) ;
481- const err = new clientRPCErrors . ErrorServerConnectionEndedEarly ( ) ;
483+ const err = new webSocketErrors . ErrorServerConnectionEndedEarly ( ) ;
482484 if ( ! this . readableEnded_ ) {
483485 readableLogger . debug ( 'Closing' ) ;
484486 this . signalReadableEnd ( err ) ;
0 commit comments