【问题标题】:Using ActionCable along with geolocation services将 ActionCable 与地理定位服务一起使用
【发布时间】:2016-07-14 12:01:27
【问题描述】:

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

我要解决的下一个问题是使用地理位置仅显示 X 英里内的消息。我在消息模型中有纬度和经度,并且我知道 geokit 和地理编码器,所以我知道我可以在与用户一定距离内找到消息。我在概念化时遇到的问题是将它与 ActionCable 结合使用。这个想法在我脑海中听起来很容易,但到了实施的时候,我想不出如何优雅地实现它。我是否只允许所有房间消息通过并通过客户端上的 JavaScript 过滤它们?这似乎有点 hacky 和浪费带宽,因为一堆消息在没有到达接口的情况下发送给客户端。可悲的是,这是我能想到的唯一方法。

【问题讨论】:

  • 你会不会像@mesages = Message.where(message.distance_to(user.address)<what_ever_distance_you_want) distance_to 这样的消息搜索是地理编码功能
  • 这适用于获取最近消息的初始集合,但对于 ActionCable 广播,我只需要向该消息范围内的用户广播。
  • 很抱歉不知道 ActionCable,但那里的选择可以反转,您可以选择性地选择哪个用户得到什么

标签: ruby-on-rails geolocation ruby-on-rails-5 actioncable


【解决方案1】:

我设法通过使用 maidenhead 网格方块来划分国家,并使用 ActionCable 向 Maidenhead 网格广播,该网格由 geolocation API 返回的纬度和经度计算得出。作为用户,我订阅了他以收听他们所在的处女网格以及我想要的粗略距离的邻近网格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-18
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多