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
Android 文件传输无法通过 XMPP 和 OpenFire 工作