用于聊天的技术是什么?我想创建一个开放的连接。
当我向数据库添加新消息时。我想在不使用计时器的情况下自动进行循环,并向浏览器发出新消息。
如何进行此聊天?
我有一个网络托管 - Linux。 - Mysql数据库。
我尝试检索新邮件并使用计时器。每隔3秒我就会使用Ajax检索数据。 这个解决方案在我看来效率低下,所以寻找其他人。
谢谢。
答案 0 :(得分:3)
PHP是一种服务器端脚本语言,这意味着在页面加载之前处理所有PHP。为了生成类似聊天的环境,您需要使用Javascript建立到后端(PHP部分)的开放连接。有很多方法可以做到这一点,包括轮询(定时器)和套接字(更复杂)。
我知道使用Javascript处理类似聊天的服务的最佳方式是检查Node.js及其功能,特别是在这里作为聊天室演示:http://chat.nodejs.org/。
NodeJS和持久连接的问题一般是大多数廉价的托管服务提供商不允许你打开持久连接。您需要寻求更高成本的专用服务器。我相信,有些主机在他们的环境中特别允许NodeJS类型的服务,但我不知道有什么不在我的头脑中。
答案 1 :(得分:1)
您可能需要实施COMET技术。它允许进行长池化请求。当一个请求完成后,您可以启动另一个请求。在COMET中,连接始终处于打开状态。
在PHP中,您可以创建无限循环,例如while(true)
,并在需要时断开连接。