Skip to content

Commit ef5a6ba

Browse files
authored
Merge pull request #14 from asjur/master
Allow forwarding IPs when running server behind proxy
2 parents fc28026 + 6f5983e commit ef5a6ba

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

lib/websocket.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ export enum WebSocketState {
2121
export class WebSocketServer extends EventEmitter {
2222
clients: Set<WebSocket> = new Set<WebSocket>();
2323
server?: Server = undefined;
24-
constructor(private port: Number = 8080) {
24+
constructor(private port: Number = 8080, private realIpHeader: string|null = null) {
2525
super();
2626
this.connect();
2727
}
@@ -37,6 +37,13 @@ export class WebSocketServer extends EventEmitter {
3737
headers,
3838
});
3939
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+
}
4047
ws.open(sock);
4148
this.clients.add(ws);
4249
this.emit("connection", ws);

0 commit comments

Comments
 (0)