2017-09-08 9 views
-3

1つのアンドロイドデバイスのGPS位置を取得し、別のアンドロイドデバイスにリアルタイムで取得したいと考えています。私は多くのリソースを使い、GCM、FCM、ソケット、またはポーリングを使用して実装できることを知りました。しかし、GCMまたはFCMはリアルタイムで更新を提供することができず、ポーリングはバッテリ排水量を増やします。ソケットについては、私はsocket.ioの実装を行ってきましたが、それが完璧な実装かどうかはわかりません。ですから、より良い実装方法を提案してください。1つのアンドロイドデバイスからGPS位置情報を取得し、別のアンドロイドデバイスにリアルタイムで提供する方法

別のシナリオは、複数のユーザーが同じソケットを介してサーバーに接続している場合、どのユーザーが誰を監視しているかをどのように把握できますか?

助けてください...

+1

。チャットの一例です。そのため、チャットアプリケーションで使用するもの(XMPP、WebRTC、WebSocketsなど)の調査を検討し、それらの技術の使用を検討することもできます。わからないので、あなたのsocket.ioコードを手助けすることはできません。 – CommonsWare

+0

チャットアプリのほとんどはFCMやGCMを実装していますが、私の場合はリアルタイムで同じことをする必要があります。これはソケットや他の実装を介して行うことができます。ソケットを実装しているチャットアプリはsocket.io経由で行っていますが、socket.ioはブロードキャストでチャットルームには適していますが、プライベートチャットには適していません。 – SAM

+0

"ソケットを実装しているチャットアプリはsocket.io経由で行っています" - これは間違っています。チャットアプリケーションでは、さまざまなプロトコルを使用できます。以前のコメントでは、XMPP、WebRTC、およびWebSocketsという3つの名前を付けました。これらのうち、Socket.IOはWebSocketを助けることができますが、WebSocketの唯一の選択肢ではありません。 Socket.IOは、他の転送メカニズム(例えば、ロングポーリング)を助けることができます。したがって、あなた自身をSocket.IOに限定するのではなく、既存の他のアプリが使用するものについてさらに調査することを検討するかもしれません。 – CommonsWare

答えて

1

firebaseデータベースを使用できます。あなたのプロジェクトに統合されたfirebase SDKを入手すると、デバイス間でのロケーション更新の送信と取得が簡単になります。

ロケーションエントリ(lat、lng、timestamp)を1つのデバイス内のdbに保存し、もう一方では子イベントを待機することができます。 2つのデバイスが同じdbリファレンス(同じ配列)を読み書きしている場合、それはcharmのように動作します。

はここに始めましょう:

デバイス間のリアルタイムのデータ交換を提供するアプリケーションの他のカテゴリがあります

https://firebase.google.com/docs/database/android/start/

関連する問題