Please, do not praise a product which is still not able to understand is user still online or not. Even their demo page say "there're 45485 participants"; this is not true. Socket pool still has leak issues, can't anybody see this?
Are most of the Socket.IO users using node at the server side?
I started using Socket.IO with python server, gevent-socketio (actually Flask-SocketIO that is based on gevent-socketio). But then the Socket.IO 1.0 came out 28 May 2014 and gevent-socketio is not yet updated. Not sure if there's any plan for it.
Another tricky part is that gevent-socketio doesn't play together with uwsgi so I had to move from uwsgi to gunicorn in order to use Socket.IO and also the latest gunicorn breaks Socket.IO support so must use gunicorn 0.16.1 instead of 0.19.1. A bit frustrating ride. But that's another story :-)
I was planning to use socket.io with the same stack (Python, Flask) for a game development project last year. Figured that the Python ports of socket.io weren't well-maintained so I took the traditional approach with Comet(Long-polling).
On another note, if you're interested in Socket.IO because of WebSockets then do know that Android 4.3 and older don't support WebSockets and so the server might need to support Long-polling anyway. It might actually introduce more lag to first check for websockets, and if unavailable, fall back to long-polling. I will wait till majority of target devices support it by default.
> It might actually introduce more lag to first check for websockets, and if unavailable, fall back to long-polling.
Socket.IO works the other way around since v 1.0, thanks to Engine.IO. It starts with long polling and tries to upgrade to WebSocket or Flash sockets if possible.
That's good to know. And Socket.IO could move back to WebSocket-first approach, once the technology becomes more pervasive. It's still a task to set up Socket.IO with Python though. Don't know how nice it plays with Node.js, but I'm happy moving to Go instead.
At one point I'm probably moving to vert.x to use SockJS server-side [1], I'm not that tied to python and would be good to decouple the whole messaging into a separate process anyway.
My understanding is that if websockets go through TLS encryption then it works alright over cellular networks. Plain websocket is what causes most of the problems.
We've been using Socket.IO for years. It works well. Here is a Space Invaders demo we put together a couple of years ago. http://www.webdigi.co.uk/fun/space
Socket.IO let's you control space invaders on your desktop realtime mobile browser with websockets, long polling, etc.
I stopped updating socket.io on production after 0.9.0 as i've seen lots of problems like closed connections without any notification. I've tried 0.9.x and 1.x.x versions. It got me 2 days to figure out that problem was from socket.io.
First I am here to promote my own library.
Which is essentially different from SocketIO in that
it acts as a more higher level abstraction providing you access to web framework like resources. It's on github and written in Python