Hi, I'll be needing to add bidirectional messaging to our current Android (Java) application, and as usual I'm expecting to manage the server side of the communication with Pharo.
I'm evaluating two alternatives, but I'm in open to other, proven, options. Option 1. WebSockets Open a WebSocket on each device, and push/retrieve messages from each of these, tracking the device id if I need to recreate a new socket (avoiding recreating new sockets in case of connectivity issues, very common). Option 2. MQTT [1] This is basically a mobile oriented MQ, super low footprint on mobile. For what I saw, I could implement the server using an intermediate MQ (RabbitMQ) and use STOMP to connect to it. Option 3. XMPP [3] Provides several features I'll need in the future, like file transfer in addition to regular text messaging. It is very well supported in Android with Smack [4], but I don't know if we have a Pharo server for it, or if somebody ever played with it. By means of simplicity and use load I favor option 1, because I can understand it better, and as everything moves towards web based technologies, I could implement WAMP [5] on top of that in the future. Right now I'd need to have a hundred websockets opened at the same time, which doesn't sound like a heavy load to me, but I certainly don't know. In the future it could be an order of magnitude bigger, and that's why I don't discard more complex solutions like XMPP or MQTT. Regards! [1] http://mqtt.org/ [2] https://github.com/svenvc/docs/blob/master/neo/stamp.md [3] http://xmpp.org/ [4] http://www.igniterealtime.org/projects/smack/ [5] http://wamp.ws/