Raspberry Pi that runs the python program that sends video to the webserver using ffmpeg. Adafruit Motor HAT to connect the motors to the pi. Android phone is strapped to robot that runs a custom android app that receives chats from the website and also says them out loud using the Android API for text-to-speech. Everything sits on top of a 3d printed chassis. Cheap logitech webcam. Web app is a node server, socketio, ec2.
Guessing the software arch, you encode the video on the robot and then send it to your backend site. Then you have a separate listener on the pi, that just takes single commands from the website. I imagine not running a webserver on the pi makes the response much faster and doesn't run down the battery. So for a private webcam in my house, a kind of alarm system, i need a system there to capture the video stream and act as a remote host that I can access from outside. I don't want to copy your webserver stack, I'd prefer something lighter weight, that I could run as a service on a linux or windows pc.
This code, which runs on the robot (RasPi), is open and available here. You are correct, it receives commands from the server via socket io.
https://github.com/runmyrobot/runmyrobot
As for the server, you can use our site with privacy if you want. The privacy feature is brand new, so you can't see it in the interface yet, but it's there. We just have to turn it on. Or, you can build your own server/webclient if you want. We can provide all information you need for messaging protocol and such that's used to move the robot.
Let me know if you have any questions
Best!
Rick Giuly rgiuly@gmail.com Co-founder RunMyRobot