Docker API exec/{id}/start is not working on Mac

I’ve written an application to handle bidirectional HTTP streams. When accessing Docker on a Linux machine, I get normal information. When accessing a Mac machine, I can’t sending any thing. My request body is {“Detach”: false, “Tty”: false}. Why can’t exec use WebSockets like attach? I’m really stuck.
MAC Info:
Request URL: 192.168.6.175:2375/exec/4664c192a3f730289d400760b879249fe294dc96effc032a0c5063da2cfa6a2b/start

Request headers: [(“Host”, “192.168.6.175”), (“Content-Type”, “application/json”)]

Request body: {“Detach”: false, “Tty”: true}

Received response: 200 OK

Response headers: [(“Api-Version”, “1.46”), (“Content-Type”, “application/vnd.docker.raw-stream”), (“Date”, “Tue, 30 Jul 2024 21:12:43 GMT”), (“Docker-Experimental”, “false”), (“Ostype”, “linux”), (“Server”, “Docker/27.0.3 (linux)”)]

stream: 1

Linux Info:
Request URL: 192.168.6.23:2375/exec/404719ab18d24dd975de6c457b0910ab718b79fb69fa1dbdacd4d29ba1d9d8ab/start

Request headers: [(“Host”, “192.168.6.23”), (“Content-Type”, “application/json”)]

Request body: {“Detach”: false, “Tty”: true}

Received response: 200 OK

Response headers: [(“Content-Type”, “application/vnd.docker.raw-stream”), (“Api-Version”, “1.46”), (“Docker-Experimental”, “false”), (“Ostype”, “linux”), (“Server”, “Docker/27.1.1 (linux)”)]

stream: 1

You are aware that on Mac you need to run Docker Desktop, which uses a VM to run the containers inside? So the whole setup is very different to regular Docker on Linux.