【发布时间】:2012-06-05 06:22:07
【问题描述】:
我正在开发一个基于 php 的网站。我想在其中实现 Facebook 聊天。
我的问题是如何将 XMPP 与 BOSH 一起使用。 XMPP和BOSH是什么关系。
是否有任何示例源代码可以了解如何使用 JAXL 或 strophe.js 等库实现 Facebook 聊天
【问题讨论】:
我正在开发一个基于 php 的网站。我想在其中实现 Facebook 聊天。
我的问题是如何将 XMPP 与 BOSH 一起使用。 XMPP和BOSH是什么关系。
是否有任何示例源代码可以了解如何使用 JAXL 或 strophe.js 等库实现 Facebook 聊天
【问题讨论】:
我的问题是如何将 XMPP 与 BOSH 一起使用。是什么关系 XMPP 和 BOSH。
BOSH 代表 http 上的双向流。它是为在 HTTP 上运行 XMPP 而设计的规范,但可用于在 http 上运行任何底层 tcp 级协议。
BOSH 基本上是在浏览器的限制范围内播放的,即一次不能向特定域发出超过 2 个请求。在这些限制内,BOSH 能够模拟服务器和客户端之间完整的双向管道。可以使用此虚拟管道传输有效负载,并且在用户体验方面它与实时一样好。
传统上,BOSH 是使用一种称为长轮询的技术来模拟的。但是,我已经能够使用 jsonp 和 websockets(如果可用)成功地运行相同的程序。
是否有任何示例源代码来了解如何实现 Facebook 使用 JAXL 或 strophe.js 等库聊天
我敢打赌,您会找到足够多的使用 strophe.js 的网络聊天应用程序示例。您只需要一个像punjab 或ebosh(我写的)这样的bosh 连接管理器,它可以连接到任何xmpp/jabber c2s 端点。
就 JAXL 示例示例而言,以下是一些您可以直接使用的示例:https://github.com/abhinavsingh/JAXL/tree/master/app 具体查看 boshchat.php、boshMUCchat.php 和 preFetchBOSH.php 示例,这些示例演示了 Jaxl 库的 BOSH 端支持。
如果您预计流量适中,可以使用这些示例。对于基于大流量的应用程序,我强烈建议使用基于 strophe.js 的解决方案。
【讨论】: