2011-09-21 118 views
0

什么技术用于聊天?我想创建一个开放的连接。Php - 实时聊天

当我将一条新消息放入数据库时​​。我想在不使用定时器的情况下自动创建循环,并向浏览器发送新消息。

如何做这个聊天?

我有一个虚拟主机--Linux。 - Mysql数据库。

我试图检索新消息并使用计时器。每3秒我使用Ajax检索数据。 这个解决方案对我来说似乎效率低下,所以寻找其他人。

谢谢。

+1

PHP + MySQL是构建聊天的糟糕平台。有许多现成的解决方案可以安装,比如XMPP/Jabber服务器。 –

回答

3

PHP是一种服务器端脚本语言,这意味着所有的PHP在页面加载前都会被处理。为了生成类似聊天的环境,您需要使用Javascript来建立到后端(PHP部分)的开放连接。有很多方法可以做到这一点,包括轮询(定时器)和套接字(更复杂)。

我知道如何使用Javascript来处理类似聊天的服务的最佳方式是查看Node.js及其功能,这里特别演示为聊天室:http://chat.nodejs.org/

一般而言,NodeJS和持久连接的问题在于大多数便宜的托管服务提供商不允许您持续打开连接。你需要小心购买一个成本更高的专用服务器。我相信,在他们的环境中,特别允许NodeJS类型的服务的主机,但我不知道有什么关系。

+0

我无法连接到chat.nodejs.org –

1

您可能需要实施COMET技术。它允许进行长时间的联合请求。当一个请求完成时,您可以启动另一个请求。 COMET连接始终打开。

在PHP中,您可以创建无限循环,例如while(true),并在需要时断开连接。