【问题标题】:Is it possible to use 'push' services at the back-end?是否可以在后端使用“推送”服务?
【发布时间】:2014-02-22 10:35:57
【问题描述】:

我正在使用 pusher gem 从外部 API 操作我的前端。它工作正常,没问题。

但我想知道是否有可能在我的应用程序后端使用推送通知?我花了很多时间对此进行调查,但找不到有用的东西。

让我总结一下:

我有一个应用程序和另一个 API 应用程序,它们与其他应用程序紧密交互。有时我想使用我的 API 向我的主应用程序发送通知,并且我希望能够在我的主应用程序的后端处理关于从 API 端接收的数据的数据。这些是诸如“操作已完成/开始/成功”等...

我了解“推送者”在前端通过 JavaScript 接收推送通知。但我相信一定有办法在后端使用这些通知。

如果有另一种方法(也许是 Faye?Websocket),我很想知道它是什么。任何线索将不胜感激。

这是可行的吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails api push faye pusher


    【解决方案1】:

    Pusher 是 backend system too(将更新“推送”到频道)


    端点

    我想你可能对endpoints感兴趣

    据我所知,您似乎希望在 API 中发生操作后触发将数据传输到端点?例如:

    • 用户在“API”应用上注册
    • API 应用向主应用发送“通知”
    • 主应用将用户数增加 1

    我可以看到这项工作的方式是使用ajax,或向主应用的端点(在路由中设置)发送curl 请求,触发操作:

    #main_app/config/routes.rb
    post "endpoint", to: "application#endpoint"
    
    #main_app/controllers/application_controller.rb
    def endpoint
        @count = Option.increment!(:user_count)
    end
    

    这将允许您在“主”应用程序的后端处理数据


    API

    当您想将数据从 API 应用程序发送到主应用程序时,棘手的非传统部分就出现了(这是您获得“推动者”想法的地方)

    我个人会考虑向主应用端点发送标准 HTTP 请求,可能使用 Curl(如果来自后端):

    您可能想在此处安装curb (CUrl RuBy):https://github.com/taf2/curb

    如果你愿意,我可以写一些代码吗?

    【讨论】:

    • 非常感谢您的回答 Rich!你真的明白我想收集什么。但是如果我只是从 API 向我的主应用程序发送 GET 或 POST 请求,我不明白“推送”逻辑有什么意义?我想我误解了什么?不应该将 Push 用于我提到的目的吗?我可以使用Typheous 向我的主应用发送 HTTP 请求吗?
    • 推送通知用于双向通信(您必须订阅频道才能接收更新)。没有办法让一个 Rails 应用“订阅”另一个应用的更新——你必须发起某种 HTTP 请求。我刚刚推荐了 CURL(因为这是我唯一有过的经验)。如果您想使用Typheous,完全取决于您!
    • 那么我们可以这样总结吗? “为了从 API 向应用程序发送通知,最好/最方便的方法是从 API 向应用程序发送常规 HTTP 请求” 那么​​ Websocket 的用例是什么?如何在 API 和应用程序之间获得全双工通信? :\
    • 不,你不能这样总结。我仍然需要了解有关 API 的更多信息,但我不认为 API 旨在发起任何请求,而只是响应。如果是这种情况,您的系统使用 API 来“发送”请求的设计是不正确的。这是关于 API 的一个很好的资源:@​​987654326@
    • 嗯,我认为你是对的。我需要问另一个问题。我要去做到这一点。请继续关注投票:D
    【解决方案2】:

    我向 Pusher 的支持团队提出了同样的问题,我得到了我正在寻找的确切答案。

    您可以在服务器上安装客户端库 (http://pusher.com/docs/client_libraries) 如果有适合您的 服务器。然后,您可以通过这种方式订阅客户频道。

    在我的例子中,我使用可以从 https://github.com/pusher/pusher-ruby-client 访问的 Ruby gem。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      相关资源
      最近更新 更多