Rails 5とActionCableを使ってかなり簡単なチャットサービスを手に入れました。これは、ユーザーが部屋のいくつかのうちの1つを選択することができ、それはすべて素晴らしい作品とセットアップにスーパー楽しいでした。ActionCableとジオロケーションサービスを併用する
私が取り組むべき次の問題は、ジオロケーションを使用してXマイル以内のメッセージのみを表示することです。メッセージモデルでは緯度と経度があり、ジオキットとジオコーダーを認識しているので、ユーザーと一定の距離内にメッセージを見つけることができます。私が問題を概念化しているのは、これをActionCableと組み合わせて使用することです。アイデアは私の頭の中でとても簡単に聞こえましたが、実装する時間が来たとき、私は優雅にそれを取り除く方法を考えることができません。部屋のメッセージをすべて許可して、クライアントのJavaScript経由でフィルタリングしますか?これは、まったくインターフェイスに到達せずにクライアントにメッセージの束のための種類のハックと帯域幅の浪費のように見えます。残念ながら、これは私が考えることができた唯一の方法です。
@mesages = Message.where(message.distance_to(user.address)
です。これは最近のメッセージの最初のコレクションを取得するのに有効ですが、 ActionCableの放送では、そのメッセージの範囲内にいるユーザーだけにブロードキャストする必要があります。 –
申し訳ありませんが、ActionCableの知識はありませんが、どのユーザーが何を取得するか選択することができます –