php在响应ajax请求之前是否可以等待很长时间?



我想做一个聊天网站,其中js ajax到PHP和PHP等待数据库从用户所拥有的更改,然后它响应用户和用户再次在召回函数ajax服务器等。我想调用持有请求的同一服务器来添加用户想要添加的任何聊天。我想知道这是否可能。

不,我认为这是不可能的。与Node.JS等其他语言不同,PHP是无状态的,这意味着服务器不能告诉客户端(浏览器)该做什么,除非客户端首先特别请求。浏览器或服务器通常有一个超时设置,所以你的实时聊天方法不会像这样工作。

相反,我认为你唯一的解决方案可能是使你的ajax调用,例如每0.5s,并询问服务器是否有任何新消息,如果有,将其返回给客户端。

是的,你可以,但这并不意味着你应该。

只是为了这个想法,您可以在循环中创建一个带有sleep()的循环,以及一个检查数据库更改的脚本,一旦数据库更改,则返回您的消息并退出循环。但是,这将使您的服务器拥有大量的进程和连接。

另一种选择是使用websocket,它是为实时消息而设计的,更适合这个任务。

相关内容

  • 没有找到相关文章

最新更新