Implementing push technology connection with POST (HTTP) through persistent connection

General Tech Technology & Software 3 years ago

5.63K 1 0 0 0

User submissions are the sole responsibility of contributors, with TuteeHUB disclaiming liability for accuracy, copyrights, or consequences of use; content is for informational purposes only and not professional advice.

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 3 years ago

 

 

I am developing a text message type app.

The messages are communicated only in direction ((1)Server -> (n)Client)

  • Server: PHP (LAMP)
  • Clients: Android (Java)

One option is to ask to server every x seconds "new messages?". This option is not worth me because creating a HTTP connection every x seconds for each device is very expensive. For example 10 000 devices creating new connection every 5 seg. This option is like the system is working now.

Option two is that I want to implement, but I don't know how do it in (Java-PHP).

The idea is the following, based on push technology:

Maintain a connection from the client to the server open continuously. That connection will never transport any data.

When the server wants to send a message to a client, force close of continuous connection.

Then the client instantly receives the event that the connection has been closed. In this case the event of closed connection means "new messages", so the client will open POST connection to get data.

How can maintain an open connection between Java and PHP continuously and that the server has the ability to close it instantly?

This is working code for POST connection between java and PHP, to try if from this code is possible open connection indefinitely.

Php:

php    
    if (isset($_POST['myId']))
    {       $in = $_POST['myId'];               
            //(...)             
            echo $myResponse;               
    }        
?>

Java:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(URL);                      

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair(key,content));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpclient.execute(httppost);
0 views
0 shares

No matter what stage you're at in your education or career, TuteeHUB will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.

Similar Forum