Ich entwickle Taxi-App wie Uber, ich habe Android-App, Standortupdate alle 5 Sekunden zu erhalten, derzeit verwende ich Retrofit zu synchronisieren um Standortdaten mit dem Server zu synchronisieren. Aber wir erwarten, dass Tausende von Treibern alle fünf Sekunden Standortdaten senden werden und eine HTTP-Anforderung, bei der die Verbindung geöffnet ist, als das Senden und Schließen von Daten, Probleme verursacht. Ich versuche TCP/IP oder Sockets zu verwenden, um Daten zu senden, ich möchte, dass der Socket offen bleibt und die Positionsdaten aktualisiert werden, und wenn der Socket geschlossen wird, wird automatisch eine Verbindung hergestellt. Ich habe in keinem Forum Hilfe zu diesem Problem gefunden. Brauche Hilfe, wie kann ich das erreichen und ist dieser Ansatz besser oder nicht?Ich möchte Echtzeit-Standortdaten von Android nach jeweils 5 Sekunden auf Server über Steckdose in Android-App
-2
A
Antwort
0
Anstatt Socket-Aktualisierung können Sie auch für die Firebase gehen. Wenn Sie erhalten die Lage Sie die Änderungen an der Firebase in der folgenden Art und Weise drücken kann
private FirebaseDatabase database = FirebaseDatabase.getInstance();
private DatabaseReference myRef = database.getReference();
Wenn auf die Datenbank veröffentlichen können, müssen Sie eine Zeile eindeutig identifizieren, genau wie in normalen Datenbank (dh ID, UUID), also musst du einen erzeugen und in dir speichern SharedPreferences
zum Beispiel.
public void postToDatabase(UserLocation location) {
DatabaseReference usersRef = myRef.child(someUUID);
usersRef.setValue(location);
}
für Änderungen hören Sie eine ValueEventListener
implementieren. Ein Beispiel, aber müssen sich an Ihre Bedürfnisse anpassen
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()) {
UserLocation location = new UserLocation();
location.setLongitude((String) snapshot.child("longitude").getValue());
location.setLatitude((String) snapshot.child("latitute").getValue());
//Dispatch your changes in application, i.e with and EventBus
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
Verwandte Themen
- 1. Client-Server: Dateiübertragung von Android zu PC über Steckdose verbunden
- 2. generieren Zufallszahl in HTML/CSS, die jeweils 5 Sekunden
- 3. generiert Protokoll nach jeweils 2 Sekunden
- 4. Update-Standort nach jeweils 2 Minuten auf dem Server Android
- 5. Senden einer Anforderung kontinuierlich nach 5 Sekunden
- 6. ein Bild von einer Videodatei nach jeweils 10 Sekunden erfassen
- 7. "Deviceready hat nicht nach 5 Sekunden gefeuert.",
- 8. Funktion nicht Aktualisieren von Daten nach jeweils 10 Sekunden
- 9. PHP Redirect nach 5 Sekunden
- 10. CSS Elemente automatisch nach 5 Sekunden ausblenden
- 11. Warum funktioniert mein Dienst nicht in Android? (Ich möchte nur etwas jemals 5 Sekunden protokollieren)
- 12. android, wie ListView alle 5 Sekunden aktualisieren
- 13. Pause von While-Schleife nach 5 Sekunden in Swift
- 14. Alarm senden nach 5 Sekunden, 15 Sekunden ... mit einem Timer
- 15. Aufnehmen von Bildern in Android alle 5 Sekunden
- 16. entferne neues div nach 5 Sekunden
- 17. CSS Spinnrad nach 5 Sekunden stoppen?
- 18. Wiederholen Sie onClick Funtkion nach 5 Sekunden
- 19. UIAlertView nach 5 Sekunden entfernen Swift
- 20. JQuery entfernen .append nach 5 Sekunden
- 21. Automatische Umleitung auf eine andere XAML-Seite nach 5 Sekunden
- 22. Javascript: Funktion nach 10 Sekunden Anruf, dann jeweils 1 Minute
- 23. Wie erhalte ich die aktuelle Position des Geräts nach jeder Sekunde oder nach jeweils 10 Sekunden?
- 24. Android Studio Update Textansicht alle 5 Sekunden
- 25. Ich sehe Leshan Server-Timeout auf 5 Sekunden. Wie und wo leshan Server Timeout erhöhen?
- 26. Arduino 5 Sekunden Timer
- 27. Kugel stoppt Prellen nach 4-5 Sekunden
- 28. Show Button 5 Sekunden nach Programmstart
- 29. Zeichnen Sie eine Polylinie nach jeweils 10 Sekunden auf google map in andriod
- 30. Ich möchte eine Zeichenfolge in orthogonalen 5 × 5 ausgeben
Vielen Dank Chirag. Firebase ist auch eine Option, aber unser Server-Ende entwickelt auf Node.js und Verwenden von Mongodb. Also in diesem Projekt kann ich Firebase nicht verwenden, brauche ich dauerhafte Socket-Verbindungslösung, um Daten zu synchronisieren. – YasirSE