将 ActionCable 与地理定位服务一起使用

Using ActionCable along with geolocation services

我使用 Rails 5 和 ActionCable 建立了一个相当简单的聊天服务。它允许用户 select 少数几个房间中的 1 个,一切都很好,设置起来非常有趣。

我要解决的下一个问题是使用地理定位仅显示 X 英里以内的消息。我在消息模型中有纬度和经度,我知道 geokit 和地理编码器,所以我知道我可以在距用户一定距离内找到消息。我在概念化方面遇到的困难是将它与 ActionCable 结合使用。这个想法在我脑海中听起来很简单,但是到了实施的时候,我想不出如何优雅地实现它。我是否只允许所有房间消息通过并在客户端通过 JavaScript 过滤它们?对于发送给客户端的一堆消息而从未到达界面,这似乎有点骇人听闻并且浪费带宽。很遗憾,这是我唯一能想到的方法。

我设法通过使用处女地网格方块将国家/地区划分并使用 ActionCable 广播到根据地理定位返回的纬度和经度计算出的处女地网格 API 来实现此目的。作为用户,我订阅了他以收听他们所在的处女地网格和我想要的粗略距离的相邻网格。