A two-layer communication protocol that supports efficient real-time location-aware application on multiple mobile devices that must communicate with each other and/or a centralized server. The two-layer protocol includes a method of communicating data between a first mobile device and a second mobile device using a server to facilitate the communication of the data. The two-layer communication protocol also includes a method of communicating data between a first mobile device and a second mobile device using a server to facilitate the connection between the two devices. The communication of data occurs directly between the two mobile devices. Each method uses reliable, connection-oriented protocols to exchange application-level information and control signals while utilizing unreliable, connection-less protocols to communicate real-time location data. Also provided are architectures implementing these methods.