Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best practice to send data from server to Android application

As for clarification, this question is not duplicated since the situation differs from other related questions.

We are working on an client side application which will receive data from a server side PHP-powered web application. Data are critical and must be delivered to user as soon as possible. It doesn't matter if client request for data from server or server push data to client, the only thing we need is a reliable and fast option.

There are several methods but non of them fit our project:

  • Use GCM push notification ability:

This is a great option but in practice, we lost several pushes so it's not reliable and in other hand, delay is so much. I repeat, the situation is critical so it must be fast.

  • Request data from server by the client with a 1 or 2 second interval:

This is what we think is the best solution so far but is really expensive. It's reliable and fast. But in other hand, the pressure on our disturbed servers get extremely high and they become useless even with our current client numbers. If the number of clients get larger, we'll be down.

  • SMS based push:

The other option for us is to send SMS to client phones and use that data to operate application. Using this method, the pressure on our server will get really low (just like GCM option). But sending SMS in our countries mobile network is usually delayed, normally, 10 seconds. Although this option have good reliability but the speed so low that we can't use it.

  • FM radio signal based push:

We can use clients FM radio receiver to get data from local broadcasting stations. This method is reliable and very fast but the cost of stations will kill us! and even if we handle it (read: we can't), clients does not connect their earphone to the smartphones always.

So, what are the alternatives? what is a reliable and almost fast method which does not make a lot of pressure on our servers?

like image 339
asDca21 Avatar asked Mar 09 '26 03:03

asDca21


1 Answers

Would probably recommend using WebSockets for case you describe (using OkHttp library for example) - see following for nice overview of it's use https://medium.com/@ssaurel/learn-to-use-websockets-on-android-with-okhttp-ba5f00aea988. A common pattern would be use of WebSockets with Http REST requests (for an initial catch up query for example). Also you would typically only use WebSockets while app was in foreground and rely on push notifications otherwise.

like image 126
John O'Reilly Avatar answered Mar 11 '26 18:03

John O'Reilly



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!