Django and websockets: Channels vs Socket.io vs other

djangowebsockets

In my Django web app I want to monitor my remote Raspberry PI clients – up to hundreds – using WebSockets: I have to check in their status in real-time (online, working, offline etc.), send commands to them (start, stop, reboot etc.) and so on.

I had a look on Django Channels and, following this tutorial, I set up a working example; the client-side is pretty simple, but the server-side seems too complex, and as far as I can understand Channels developing is at an early stage.

So I had a look at a Socket.io, that seems a more mature and "stable" technology, but I didn't try it out yet.

So, what's your opinion about them? What would be the best choice for me?

Best Answer

If you're asking about monitoring your raspberry pi clients from the server side, websockets isn't really built for that. Websockets is meant to handle browser client load. You might look into protocol buffers and something like gRPC which will give you a much lighter overhead suitable for the server.

Related Topic