0

我计划将实时通知集成到我目前正在开发的 Web 应用程序中。我决定为此使用 XMPP,并选择了我认为适合我需要的 openfire 服务器。

前端使用 strophe 库使用 BOSH 从我的 openfire 服务器获取通知。但是通知是通知,其他消息将由我的应用程序发布,因此我认为此代码需要驻留在后端。最初我想使用 XMPHP 和 JAXL 等 PHP XMPP 库,但后来我认为这会导致很多开销,因为每个脚本都必须执行相同的步骤,如连接、身份验证等,我认为这会使 PHP 结束有点慢并且反应迟钝。

现在我正在考虑创建一个中间件应用程序,充当 PHP 将调用的 Web 服务,并且该应用程序将使用 XMPP 服务处理这些内容。这样做的好处是这个应用程序(如果你愿意的话是一个服务器)只需连接一次,它就会坐在那里监听一个端口。我还计划以异步方式构建它,这样它将首先从我的 PHp 应用程序中获取所有请求,然后在没有更多请求时获取;去做通知发布的事情。我计划使用 SleekXMPP 在 Python 中创建此服务。

这正是我计划的。我是 XMPP 和整个 Web 服务的新手,我想就内存和 CPU 使用率、优势、劣势、可扩展性问题、安全性等问题发表您的意见。

提前致谢。

PS:--如果这样的东西已经存在(虽然我在谷歌上搜索了很多都没有找到)请指引我到那里。

编辑 --- 中级服务应该做以下(但不限于): 1. 为不同级别的组和社区页面发布通知。2. 单个用户在某些事件上的通知。3.用户注册(虽然可以使用用户服务插件完成)。

编辑 --- 它还应该创建 pub-sub 节点并从这些 pub-sub 节点订阅和取消订阅用户。

我还想将通知和消息存储在数据库中(openfire 没有)。那会是一个不错的选择吗?

4

1 回答 1

0

在我看来,XMPP 对你正在做的事情来说是一种重量级的解决方案,因为通信只是单向的,而且你只是发送通知(没有实时多用户聊天等)。

我会考虑将 Socket.io (http://socket.io) 之类的东西用于服务器<=>客户端通道以及 Redis (http://redis.io) 用于持久性。

于 2012-12-10T08:07:50.617 回答