I use zmq through ros2 + Gazebo(Garden, Citadel, and Fortress).
Actually, the entire project I use is zmq.
I know this doesn’t answer your question, but I wanted to share the idea and see if it helps you in someway.
As for websocket, I saw this conversation recently. I haven’t tried it but very soon I will. Hopefully this conversation helps you!