I believe the original question was how to access CDR files when 3CX is hosted, and not necessarily hosted with 3CX. However, to your point, if the 3CX is hosted at 3CX, there is no way to get access to the CDR --files--. Although perhaps you can get access to the socket connection.
In my view, if you need CDR information, you will need to host it somewhere other than at 3CX because the socket connection, as you noted, can not recover from any lost connections... meaning, any calls that came in while the socket connection is down, whereas, with the file based approach you can always catch up after outages...