我正在使用pusher gem从外部API操作我的前端。它工作正常,没问题。
但我想知道的是,是否有可能在我的应用程序的后端使用推送通知?我花了很多时间来调查这个,但找不到有用的东西。
让我总结一下:
我有一个应用程序和另一个与其他应用程序紧密交互的API应用程序。有时我想使用我的API向我的主应用程序发送通知,我希望能够在主应用程序的后端处理有关从API端接收的数据的数据。这些是“行动已经完成/开始/成功”等等......
据我所知,“推送器”会在前端通过JavaScript接收推送通知。但我相信必须有一种方法可以在后端使用这些通知。
如果有另一种方式(也许是Faye?Websocket)这样做,我很想知道它是什么。任何线索将不胜感激。
这是可行的吗?
谢谢
答案 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到达。