收听Prosody Offline消息目录

时间:2014-06-10 12:16:58

标签: ruby-on-rails ruby push-notification xmpp listen

我使用Prosody开发了一个聊天应用程序,当有人收到消息并且不在线时,我需要发送推送通知。

这个聊天应用程序与我用Ruby on Rails编写的WebApp一起工作。

我经常搜索并没有找到任何从Prosody发送推送通知的内容(我找到了eJabberd,但我在eJabberd时遇到了另一个问题)。因此,我决定寻找一个监视目录的RoR的gem,我可以监视Prosody的离线消息目录,并在消息无法传递给用户时获得回调,然后向他发送推送通知。 / p>

我发现宝石听从守卫(https://github.com/guard/listen)完全按照我的要求行事,但我不知道应该在哪里开始听众,何时我应该停止它,因为我需要它来逃避我的WebApp在线。

2 个答案:

答案 0 :(得分:1)

你正试图制造过于复杂的东西,只因为你认为Prosody是一个黑盒子"。实际上你需要:

  • 韵律模块,"钩子"离线消息并将其发送到您的webapp - 请参阅此处的示例:https://github.com/JorgenPhi/ProsodyPush

  • 推送您喜欢的网页框架的通知模块 - 我认为您可以找到大量的红宝石宝石。

答案 1 :(得分:0)

经过大量研究后,我发现最好的方法是只编写一个简单的ruby脚本并用守护进程(https://github.com/ghazel/daemons)对其进行守护。

要处理我的rails应用程序中的推送通知,我将使用forward_to选项来侦听我的rails应用程序的操作。

感谢@mtm for rails cast解释如何守护脚本:http://railscasts.com/episodes/129-custom-daemon