Symbian
Symbian OS Library

FAQ-1024 I want a server to 'push' information to IP clients over GPRS

[Index][spacer] [Previous] [Next]



 

Classification: General Category: Development
Created: 04/05/2004 Modified: 04/23/2004
Number: FAQ-1024
Platform: Symbian OS v6.1, Symbian OS v7.0, Symbian OS v7.0s, Symbian OS v8.0

Question:
A server needs to regularly push updates of information to IP based clients over GPRS. Because of NAT (in almost all operator setups), a server cannot initiate a connection to the mobile terminals, thus an alternative method for notification has to be used.

Answer:
Because of the GPRS/NAT implications (see links below) the easiest way to do 'Push' on to a mobile(which is behind NAT ) is either to use SMS for Out of Bounds notification or use a (quasi) permanent TCP connection to the server at all times. Within that TCP connection the server can push notifications back to the client.

The cost of having that TCP connection alive is minimal, in terms of traffic, since it doesn't do much. Because you cannot have the server
initiating a connection to the client, that doesn't mean that you cannot have the server sending data within a TCP connection stream that the client has previously initiated.

    Therefore although the client has initiated that connection to the server, that server can push back data to the client as needed through the maintained TCP stream. TCP is a connection-oriented protocol and as long as the connection is alive, bidirectional traffic is possible.

    FYI also read the following:

    http://www.symbian.com/developer/techlib/papers/cpp_comms.html
    http://www.symbian.com/developer/techlib/papers/cpp_messaging.html