Proposition to override behaviour of getRemoteAddress
There is the case I had that I needed actual client remote IP. However, the Ratchet passes up top from ReactPHP a remote address of the actual host which connects to it directly not the one which was the origin of the connection - what in sense of WS is kind of a mistake. 
What I mean is that in base concept of WebSocket we have just two hosts (server and a client) p2p connected so the remote address should always point to the actual IP address of the client not to the one socket returns, because the socket itself works in 4th layer of ISO/OSI reference model and WS is an upgrade of HTTP connection which is in 6th layer of the same model. 
What I mean is to think if it will not be a good idea to check in WS Server class if there is no X- header present and if so - return its value instead of the one returned by socket. And in case where there is no such header we just know that the connection is most probably p2p, so we can retrieve the actual IP from the socket. 