Hey Esteban,

Since you seem to need to scale to 1000s of concurrent connections, I would go 
for option 2. RabbitMQ will then work as a demultiplexer and you gain options 
for using more than one Pharo worker for processing traffic, if that ever 
becomes necessary.

BTW, I never heard of MQTT and it seems pretty interesting, thanks ! I will 
read about it tonight. 

Sven

> On 19 Nov 2014, at 19:06, Esteban A. Maringolo <emaring...@gmail.com> wrote:
> 
> 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/
> 
> 


Reply via email to