3

我正在开发一个基于 php 的网站。我想在其中实现 Facebook 聊天。

我的问题是我如何将 XMPP 与 BOSH 一起使用。XMPP和BOSH的关系是什么。

是否有任何示例源代码可以了解如何使用 JAXL 或 strophe.js 等库来实现 Facebook 聊天

4

2 回答 2

3

我的问题是我如何将 XMPP 与 BOSH 一起使用。XMPP和BOSH的关系是什么。

BOSH 代表 http 上的双向流。它是为在 HTTP 上运行 XMPP 而设计的规范,但可用于在 http 上运行任何底层 tcp 级协议。

BOSH 基本上是在浏览器的限制范围内播放的,即一次不能向特定域发出超过 2 个请求。在这些限制内,BOSH 能够模拟服务器和客户端之间完整的双向管道。可以使用此虚拟管道传输有效负载,并且在用户体验方面它与实时一样好。

传统上,BOSH 是使用一种称为长轮询的技术来模拟的。但是,我已经成功地能够使用 jsonp 和 websockets(如果可用)运行相同的程序。

是否有任何示例源代码可以了解如何使用 JAXL 或 strophe.js 等库来实现 Facebook 聊天

我打赌你会找到足够多的使用 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 的解决方案。

于 2012-07-23T05:48:00.767 回答
0

BOSH是一种通过 HTTP 将消息从服​​务器发送到客户端的技术。它是为与 XMPP/Jabber 一起使用而开发的,作为模拟 TCP 的一种方式,但也可以被其他技术使用。本质上,BOSH 只是 XMPP 消息最常用的载体。

就实际实施而言,这个问题可能对您有更多帮助。

于 2012-06-05T20:08:41.897 回答