如何使用XMPP和BOSH实现Facebook聊天

时间:2012-06-05 06:22:08

标签: php xmpp strophe

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

我的问题是我如何在BOSH中使用XMPP。什么是XMPP和BOSH的关系。

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

2 个答案:

答案 0 :(得分:3)

  

我的问题是我如何在BOSH中使用XMPP。什么是关系   XMPP和BOSH。

BOSH代表http的双向流。它是一个用于通过HTTP运行XMPP的规范,但可用于通过http运行任何底层tcp级协议。

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

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

  

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

我打赌你会找到使用strophe.js的足够的网络聊天应用示例。您所需要的只是一个bosh连接管理器,如punjabebosh(我写的一个),它可以连接到任何xmpp / jabber c2s端点。

就JAXL示例而言,这里有一些你可以直接使用:https://github.com/abhinavsingh/JAXL/tree/master/app请特别注意boshchat.php,boshMUCchat.php和preFetchBOSH.php示例,这些示例演示了Jaxl库的BOSH端支持。

如果您期望中等流量,可以使用这些示例。对于基于流量的繁重应用,我会认真推荐使用基于strophe.js的解决方案。

答案 1 :(得分:0)

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

与实际实施相关,此question可能对您有所帮助。