如何使用PHP和JQuery开发基于Web的XMPP聊天工具?

前端之家收集整理的这篇文章主要介绍了如何使用PHP和JQuery开发基于Web的XMPP聊天工具?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望开发一个网站,其中包含网站访问者和网站管理员之间的聊天工具.

我知道最好的方法是使用XMPP,但我没有使用它的经验.我希望使用PHP实现这一点.

我已经下载了XMPPHP,我编辑了一个示例,在GMail中向我的Google聊天客户端发送消息,但是当我回复谷歌告诉我另一端没有得到消息.

到目前为止,最丰富的教程是http://www.ibm.com/developerworks/xml/tutorials/x-realtimeXMPPtut/,但我不明白为什么我需要安装’Openfire’,我也不想在我的本地机器上构建网站.

有人可以告诉我我需要什么(更重要的是,为什么)设置这个项目,以便我可以开始为它构建代码

评论到其他答案来看,我会告诉你为什么,以及一些什么,但不会给你一个解决方案,因为我在“相关”侧栏中看到了大量的解决方案.你必须选择正确的,并且知道“为什么”你将能够做出有根据的决定.

为了使聊天感觉正确,必须对回复有一些即时性.随着时间的推移,用户会注意到一秒钟的滞后时间,并给人一种不合时宜的感觉.要在浏览器中立即或“实时”响应,需要持久连接,以便在新信息进入时立即显示.

由于HTTP的请求/响应规范,浏览器中的持久连接很困难.工作中有一些规范可以为浏览器提供持久连接,但这些浏览器并不是普遍存在的.在未来,持久性连接将由WebSocketsSPDY提供,这两种版本都可以在Chrome,Safari和FireFox的最新版本中使用,而且IE有些滞后.

持久连接的另一个选项是XMPP.XMPP是用于Jabber聊天客户端的协议.由于它是一个开源实现,因此它已被移植到许多其他用途.存在JavaScript库,允许您将浏览器连接到XMPP套接字并侦听新消息.我过去看到的方法是将消息发送到Web服务器,然后让Web服务器告诉XMPP服务器有关新消息的信息,然后将新消息广播给所有用户.但是,这需要一个XMPP服务器,这会增加系统的复杂性.

大多数用户并不处于浏览器版本的最前沿,因此您需要能够处理旧版浏览器.大多数替代方案涉及打开与服务器的长时间连接,每当新数据到达时它都会响应.以下是在旧版浏览器中模拟持久连接的方法列表:

> Adob​​e Flash Socket
> ActiveX HTML文件(IE)
>服务器发送事件(Opera)
> XHR与多部分编码
> XHR与长轮询

这些旧方法和WebSockets由名为Juggernaut的库提供支持.

更新Juggernaut has been deprecated by the maintainer,理由充分:现代浏览器通过称为服务器发送事件(SSE)的规范支持开箱即用的持久连接(当然除了IE).向后兼容性现在由polyfills(What is a polyfill?)处理,并且如弃用文章所述,有几个很好的将SSE带到旧版浏览器.

猜你在找的PHP相关文章