Ray RLlib's External Environement is it Socket or REST API?

Hi all,

I’m using RLlib’s ExternalEnv to perform some performance comparisons for my dissertation. Specifically, I’m using the cartpole_server and client as my base source code, which can be found here: Cartpole Server Example.

On the server side, it prints out that it is using HTTP, as shown below:

(RolloutWorker pid=66284) 127.0.0.1 - - [12/Jul/2024 10:07:31] "POST / HTTP/1.1" 200 -

However, when I use Wireshark to capture the packets, I observe that they are not HTTP packets but rather plain TCP packets.

My question is: Does RLlib’s ExternalEnv use sockets as the default communication method? If so, how does this align with the HTTP message shown in the server logs?

Thank you for your help!