2017-08-07 4 views
-2

Wir erstellen eine Echtzeit-GPS-Tracker-App in IOS und Android. Wir wollen den Echtzeitort von A von der Karte von B sehen (wie in UBER kann ich den Standort des Fahrers sehen). Wir können jetzt die Koordinaten von A holen, aber wie sollen wir es auch in Echtzeit an B senden? Sollten wir noch die Datenbank verwenden, um die Koordinaten abzurufen und zu senden? Oder gibt es eine Möglichkeit, die Koordinaten von Telefon zu Telefon zu senden?Senden von Kartenkoordinaten von Telefon zu Telefon

Antwort

1

Sieht so aus, als ob Sie entweder einen bidirektionalen Datenkanal oder eine wirklich schnelle no-sql-Datenbank benötigen.

Zuerst über bidirektionale Datenkanal. Sie können entweder socket.io verwenden, wo Sie einen sehr einfachen Knotenserver haben, um den bidirektionalen Datenkanal zu unterstützen. Oder Sie können einfach WebRTC verwenden, das nicht genau für diesen Zweck gebaut wurde, aber Sie können den Datenkanal immer noch nutzen, um Ihr Ziel zu erreichen. In beiden Fällen wird jedoch meistens eine UDP-Verbindung verwendet, was bedeutet, dass sie nicht zuverlässig ist. Sie können nicht sicherstellen, dass die andere Seite die Koordinaten erhält.

Zweite Lösung, eine sehr schnelle No-SQL-Datenbank, auf der anderen Seite, könnte gerade besser auf Ihre App ausgerichtet werden. Wenn Sie einen Server von Grund auf neu erstellen, müssen Sie weiterhin socket.io verwenden, um die Änderungen in Ihrer Datenbank zu überwachen und beide Seiten zu benachrichtigen (bei Verwendung von https-Anforderungen wird es nicht annähernd Echtzeit sein). Sie können sie Koordinaten unter beispielsweise einer Referenz wie /root/geolocation/{room-hash}/coords aktualisieren lassen und beide Seiten haben die gleiche ref mit socket.io Verbindung überwachen.

Wenn Sie nicht auf der Suche nach Erfahrung mit dem Erstellen von Realtime-Server von Grund auf neu sind, und nur Ihre App beenden möchten. Sie können in Firebase schauen, die ich denke, ist eine ziemlich schnelle Datenbank. Sie können Firebase-Bibliothek in Ihrem Android/iOS-Code verwenden. Wenn Sie Ihren systemeigenen Code bereits programmiert haben und ihn nicht ändern möchten. Verwenden Sie Firebase-Cloud-Funktionen und machen Sie sie zu API-Aufrufen.

0

Sie benötigen einen Echtzeit-Kommunikationsmechanismus, um A-Standorte an B-Client zu senden. Etwas wie websocket (ex: socket.io) oder ein Messaging-Protokoll (zB: MQTT.org) kann Ihnen helfen.