File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ export enum WebSocketState {
21
21
export class WebSocketServer extends EventEmitter {
22
22
clients : Set < WebSocket > = new Set < WebSocket > ( ) ;
23
23
server ?: Server = undefined ;
24
- constructor ( private port : Number = 8080 ) {
24
+ constructor ( private port : Number = 8080 , private realIpHeader : string | null = null ) {
25
25
super ( ) ;
26
26
this . connect ( ) ;
27
27
}
@@ -37,6 +37,13 @@ export class WebSocketServer extends EventEmitter {
37
37
headers,
38
38
} ) ;
39
39
const ws : WebSocket = new WebSocket ( ) ;
40
+ if ( this . realIpHeader && "hostname" in sock . conn . remoteAddr ) {
41
+ if ( ! req . headers . has ( this . realIpHeader ) ) {
42
+ this . emit ( "error" , new Error ( 'specified real ip header does not exist' ) ) ;
43
+ } else {
44
+ sock . conn . remoteAddr . hostname = req . headers . get ( this . realIpHeader ) || sock . conn . remoteAddr . hostname ;
45
+ }
46
+ }
40
47
ws . open ( sock ) ;
41
48
this . clients . add ( ws ) ;
42
49
this . emit ( "connection" , ws ) ;
You can’t perform that action at this time.
0 commit comments