XMPP——openfire、PHP 和 python 网络服务

Posted

技术标签:

【中文标题】XMPP——openfire、PHP 和 python 网络服务【英文标题】:XMPP-- openfire,PHP and python web service 【发布时间】:2012-12-09 12:07:31 【问题描述】:

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

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

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

这正是我的计划。我是 XMPP 的新手,我想就内存和 CPU 使用率、优势、劣势、可扩展性问题、安全性等问题向您的 cmets 提出建议。

提前致谢。

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

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

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

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

【问题讨论】:

你能提供更多关于这个中间件应用程序的信息吗? 【参考方案1】:

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

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

【讨论】:

好吧,在完成通知后,我还将开发聊天和其他实时功能。但是对于聊天,我猜我只需要在前端实现代码(使用 strophe)。

以上是关于XMPP——openfire、PHP 和 python 网络服务的主要内容,如果未能解决你的问题,请参考以下文章

XML 解析错误:“Not well-formed (invalid token)”,f***g/xmpp PHP library package with xmpp openfire

如何使用 XMPP 与 PHP 进行聊天过程

XMPP、openfire 和 bot 问题

Android 文件传输无法通过 XMPP 和 OpenFire 工作

如何同步xmpp服务器openfire用户和iOS APP用户

在运行 Openfire 的 ubuntu 服务器上查找和更新 XMPP 版本