聊天使用什么技术?我想创建一个开放的连接。
当我将一条新消息放入数据库时。我想在不使用计时器和循环的情况下自动给浏览器发来一条新的消息。
这个聊天怎么做?
我有一个虚拟主机- Linux。- Mysql数据库。
我试着检索新消息,并使用计时器。每隔3秒,我就会使用Ajax检索数据。在我看来,这个解决方案效率很低,所以请寻找其他解决方案。
谢谢。
发布于 2011-09-22 00:55:04
PHP是一种服务器端脚本语言,这意味着所有的PHP甚至在页面加载之前就被处理了。为了生成类似聊天的环境,您需要使用Javascript建立到后端( PHP部分)的开放连接。有很多方法可以做到这一点,包括轮询(计时器)和套接字(复杂得多)。
据我所知,使用Javascript处理类似聊天的服务的最好方法是查看Node.js及其功能,这里特别演示了聊天室:http://chat.nodejs.org/。
一般来说,NodeJS和持久连接的问题是,大多数廉价的主机提供商都不允许您打开持久连接。你需要花钱买一台成本更高的专用服务器。我相信,有一些主机在它们的环境中特别允许NodeJS类型的服务,但我不知道有哪一个是这样的。
发布于 2011-09-22 00:50:10
您可能需要实现COMET技术。它允许发出长时间的池化请求。当一个请求完成后,您可以启动另一个请求。在彗星中,连接始终是开放的。
在PHP中,您可以创建无限循环,例如while(true),并在需要时断开连接。
https://stackoverflow.com/questions/7503552
复制相似问题