是否可以在后端使用“推送”服务?

时间:2014-02-22 10:35:58

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

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

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

让我总结一下:

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

据我所知,“推送器”会在前端通过JavaScript接收推送通知。但我相信必须有一种方法可以在后端使用这些通知。

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

这是可行的吗?

谢谢

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

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

  

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

就我而言,我使用Ruby gem,可以从https://github.com/pusher/pusher-ruby-client到达。